Pythonで例外を作成するには、Exception
クラスを継承して新しい例外クラスを作成する必要があります。例外クラスは通常、プログラムが期待する動作を妨げるエラーを示すために使用されます。
例えば、以下のように、Exception
クラスを継承して新しい例外クラスを作成することができます。
class MyException(Exception): pass
この例では、MyException
という新しい例外クラスを作成しています。この例外クラスは、Exception
クラスを継承しているため、すべての例外クラスの基本クラスであるException
クラスの機能を備えています。
Pythonで例外をスローするには、raise文を使用します。raise文を使用することで、自分で定義した例外をスローすることができます。以下は、例外をスローするPythonのコードの例です。
# 例外をスローする関数 def divide(a, b): if b == 0: raise MyException("division by zero") else: return a / b # 例外を捕捉する部分 try: result = divide(10, 0) except MyException as e: print("Error:", e) else: print("Result:", result)
この例では、divide
関数内でゼロ除算が発生した場合に、ZeroDivisionError
をスローするようになっています。try-except文を使うことで、関数の呼び出しを保護しています。関数内で例外がスローされた場合、exceptブロックが実行されます。例外オブジェクトには、スローされた例外の詳細な情報が含まれています。
また、Pythonには標準で定義された例外もあります。例えば、IndexErrorやTypeErrorなどがあります。raise文でこれらの例外をスローすることもできます。例えば、以下のようなコードになります。
# IndexErrorをスローする例 lst = [1, 2, 3] try: x = lst[3] except IndexError as e: print("Error:", e) else: print("x:", x)
この例では、リストの範囲外のインデックスを指定しているため、IndexErrorがスローされます。