エンジニャーリング

技術ときどきネコ

pythonのエラーハンドリング

pythonでエラーが起こった時にどう対処するか?
pythonのエラーハンドリングについての世の中の知見を見て回った。

大きくは2系統。
エラー判定してreturnするタイプと例外を投げてキャッチするケースとあるらしい。
他の言語と一緒ってことで考えて良さげかな。

実際のところどちらが良いかなんて、システムの方向性とか設計思想によるのでどちらが良い!とは言えないですが、 何も考えなければ、例外を投げてキャッチする方が使い勝手が良さそうだったので、例外の方を採用。
あとは、呼び出し元まで投げてあげれば大体は丸く収まるので、戻り値を戻るたびに判定しないといけないreturnの場合よりも楽な気がする。

ときに、pythonでは例外を投げるときに 「raise」を使って投げるのだが、復活って意味かと思ってたら(FFのせい)、上げるって割と普通の意味だった。例外=死からの復活(raise)だと思ってコード書いたのになんか意味違ってガッカリ。