python 例外処理の使い方[Python 初心者向け try Exception使い方]

この記事は約6分で読めます。

組み込み機器向けのC言語ではメモリアクセスに異常が発した場合には、メモリエラーやハードエラー等に処理が飛んでリセットするなんてことがよくあります。

ですが、Pythonには例外が発生した場合には、例外処理発生時の処理をしこんでそこに飛ばせるような便利なことが可能です。
※これは.net等のC#やC++等でも同じですよね。
で今回はこの例外処理について説明します。

例外処理とは

まず、Pythonでは、処理の途中で例外が発生した場合に、例外オブジェクトというものを生成します。この例外オブジェクトには、エラーの種類やエラー内容が記録されています。この例外オブジェクトを使用することで、エラー内容をターミナルに出力できたりします。

例外の捕まえ方

例外処理を捕まえるには以下のように記載します。

try:

Exception:

try:は、ここからエラーを捕まえますよっていう宣言で、Exceptionは、例外が発生した時にここに来ます。
エラーが発生しなった場合は、Exceptionの階層の処理は実行されません
以下のようにExceptionと別でelseを追加して明示的にエラーがないにしたい処理をいれることもできます。

try:

Exception:

else:

例外処理の分岐

あとは、Exceptionの例外を特定してケース分けするようなこともできます。
その記載方法は以下のような記載方法をします。

Exception 例外クラス名:
Exception 例外クラス名 as 変数名:

以下のような使い方をします。
以下ではファイルのオープン処理を使用としていて、、ファイルがない場合は FileNotfoundError という例外クラスで捕まえています。

try:
    f = open(filename)
Exception FileNotfoundError:
    print(filename)
Exception:
    print("Other Exception")
else:
    print("success file Open")

ちなみに、この try-Exception は、tryの階層内の処理のエラーが発生した時点で Exception に処理が飛ぶことになります。

まとめ

はい。簡単ですが、try-Exception について説明しましたがいかがだったでしょうか?
この try-Exception を使わなければ、もし例外が発生した場合、プログラム自体がエラーとして落ちてしまいますが、エラーを捕まえて処理を継続させたり、そのエラー処理だけを飛ばして続きを処理させることができてとても便利ですので、みなさん活用してみてください。
特に常時動作させたいようなプログラムの場合は、エラーで落ちてしまうとシステム的に重大な問題となることもありますし、必須の機能となるのではないかと思います。

以下、私の使い方と注意している点について、記載しますので、参考にしてみてください。
私はtryの中で、ループする処理やブラックボックスのライブラリ処理を中に入れてエラーを検出して自分の処理の中でエラーとして検出して処理を継続するようにしています。
〇注意点
ただし、不安だからといって、このtry-Exceptionをプログラムのあちこちにいれるとどこで例外が発生していて、どんなエラーなのかが隠れて見えなくなってしまいます
なので、ここぞってところにいれるようにしてください。
ちなみに、私は、テストで動作させているときはあえて、この例外処理はいれずにプログラムをエラーで落として、内容を確認するようなこともしています。

Pythonについて勉強したい人は以下がおすすめです。私も持っていてたまに眺めて勉強していますものですのでぜひ購入して学習してみてください。

コメント

タイトルとURLをコピーしました