LoginSignup
0
0

Pythonの例外ハンドリング

Last updated at Posted at 2024-05-08

Pythonの例外ハンドリングについて学習

Javaと同じ点や異なる点を整理しながらPythonの例外ハンドリングについて学習する。

try節

Javaと同じで、例外が発生する可能性のある箇所で使う。exceptかfinallyのどちらかは必須。

except節

Javaのcatchと同じで例外を捕まえることができる。
asで一時変数を定義することができる。

else節

すべてのexcept節よりも後ろにelse節を置くことができ、例外が発生していない場合の処理を記載することができる。

どのような使い方をすれば効果的なのかを調べる。

finally節

Javaと同じで、例外の発生有無にかかわらず実行される処理を書くところ

基底クラスでの例外捕捉

Javaと同じで、except節で基底クラスを指定することで、継承しているクラス例外を捕捉することができる。

raiseで例外送出

Javaのthrowsと同じようにraiseで例外を送出することができる。

with文

Javaのtry-with-resourcesのように例外が発生しても、リソースをクローズしてくれる。
コンテキストマネジャーと呼ばれる__enter__()と__exit__()の特殊メソッドを実装したクラスのインスタンスを指定することができる。
Javaだと、AutoCloseableCloseableをimplementしている必要があり、close()だけがinterfaceに指定されている。
そのため、withブロック開始前に処理されるメソッドが必須であるということがJavaとの違い。

with open('python.txt') as file:
   print(file.read())
0
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
0
0