2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonのtry-exceptについて知りました。感動。

Last updated at Posted at 2024-10-30

try-exceptとは?

pythonにおいて、エラー(例外)が発生する可能性のあるコードブロックを try ブロックで囲み、例外が発生した場合に except ブロック内のコードを実行するもの。

try: 
    何かしらのエラーが発生しそうな処理
except エラー名:
    そのエラー名が発生したときに実行する処理

↑のように書く。

知った経緯

現在、スクレイピングを学んでいる最中であり、その際に、httpリクエストが失敗したときの処理、どうしよう。。と悩んでいる時に、このtry-exceptを知りました。本来だったら、考えうるエラーに応じて、if文を書くしかないと思っていましたが、もっと簡潔に解決できました!
~実際のコード~

try:
    html = requests.get("URL")
    html.raise_for_status()
except requests.RequestException as e:
    print(f"Webページの取得に失敗しました:{e}")
    return None

try

requests.get("URL")

【処理内容】
指定したURLに対してHTTPリクエストを送信し、サーバーからのレスポンスを取得する処理。
【起こりうるエラー】
・サーバー接続出来ない。(サーバーがダウンしている等で)
・タイムアウト。(サーバーが非常に遅い等で)

html.raise_for_status()

【処理内容】
HTTPステータスコードが200番台か確認し、200番台以外であれば、エラーとみなす。(200番台はリクエストが成功したことを示すレスポンスコード)
【起こりうるエラー】
・404 Not Found。(Webページが見つからない)
・500 Internal Server Error。(何らかのサーバ内で起きたエラー)

except

except requests.RequestException

このRequestExceptionとは、requests モジュールにおけるすべてのリクエスト関連のエラーの親クラスです。ようするに、ネットワーク接続エラーが発生した場合に使われる、ConnectionErrorや、サーバーからエラーステータス(404など)を受け取ったときに使われる、HTTPErrorなどは、RequestException を継承したクラスなので、これをexceptに書けばほとんどのエラーに対応できる!(みたいな感じだと思います。。)

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?