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だと、AutoCloseableかCloseableをimplementしている必要があり、close()だけがinterfaceに指定されている。
そのため、withブロック開始前に処理されるメソッドが必須であるということがJavaとの違い。
with open('python.txt') as file:
print(file.read())