Pythonの例外の種類とその実装方法を解説する

スポンサーリンク

より大きなコードを書き、より複雑なアプリケーションを構築する場合、Pythonの例外は必ず発生します。

それらを解決できないときは、イライラすることがあります。

エラーはどのような場合に発生するのでしょうか?

  • 間違った入力をしたとき
  • モジュール/ライブラリ/リソースに到達できない。
  • メモリや時間の超過
  • プログラマーによる構文エラー
スポンサーリンク

Python のさまざまな例外

例外とは、プログラムの流れを中断し、コードの実行を停止させるプログラム内の条件と定義されます。

Pythonは、コードがエラーや中断なしに実行されるように、これらの例外を処理する素晴らしい方法を提供します。

例外は、組み込みのエラー/例外に属するか、カスタムの例外を持つことができます。

一般的な組み込みの例外は以下の通りです。

  1. ZeroDivisionError
  2. 名前エラー(NameError
  3. インデントエラー
  4. IOEエラー
  5. 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

まとめ

これで、例外処理の基本的な考え方は理解できたと思います。

いろいろな例外処理を自分で試してみてください。

お読みいただきありがとうございました。


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