より大きなコードを書き、より複雑なアプリケーションを構築する場合、Pythonの例外は必ず発生します。
それらを解決できないときは、イライラすることがあります。
エラーはどのような場合に発生するのでしょうか?
- 間違った入力をしたとき
- モジュール/ライブラリ/リソースに到達できない。
- メモリや時間の超過
- プログラマーによる構文エラー
Python のさまざまな例外
例外とは、プログラムの流れを中断し、コードの実行を停止させるプログラム内の条件と定義されます。
Pythonは、コードがエラーや中断なしに実行されるように、これらの例外を処理する素晴らしい方法を提供します。
例外は、組み込みのエラー/例外に属するか、カスタムの例外を持つことができます。
一般的な組み込みの例外は以下の通りです。
- ZeroDivisionError
- 名前エラー(NameError
- インデントエラー
- IOEエラー
- EOFError
Pythonでテスト用の例外を作成する
Pythonインタープリターで例外がどのように見えるか、いくつかの例を見てみましょう。
以下に示すコードの出力を見てみましょう。
1
2
3
4
|
a = int ( input ( "Enter numerator: " ))
b = int ( input ( "Enter denominator: " ))
print ( "a/b results in : " )
print (a / b)
|
分子を整数、分母を0としたときの出力は以下のようになります。
Enter numerator: 2
Enter denominator: 0
a / b results in :
Traceback (most recent call last): File "C:/Users/Hp/Desktop/test.py" , line 4 , in <module>
print (a / b)
ZeroDivisionError: division by zero |
Try.Except.で例外を回避する
エラーが発生してプログラムの流れが止まってしまうのを防ぐために、try-except文を利用します。
コード全体のロジックはtryブロックの中に置かれ、exceptブロックは例外やエラーが発生した場合に処理します。
以下にその構文を示します。
try :
#block of code
except <Name of Exception>:
#block of code
#Rest of the code |
PythonでZeroDivisionErrorの例外を処理する
先ほどのZeroDivisionErrorをtry-exceptブロックを使って処理するコードを見てみましょう。
以下のコードを見てください。
1
2
3
4
5
6
|
try :
a = int ( input ( "Enter numerator: " ))
b = int ( input ( "Enter denominator: " ))
print (a / b)
except ZeroDivisionError:
print ( "Denominator is zero" )
|
先ほどと同じ入力に対して、このコードの出力は以下のようになります。
Enter numerator: 2
Enter denominator: 0
Denominator is zero
|
まとめ
これで、例外処理の基本的な考え方は理解できたと思います。
いろいろな例外処理を自分で試してみてください。
お読みいただきありがとうございました。