呼び出し時の try-except を使ったテスト
このステップでは、Python でオブジェクトを呼び出す際に潜在的なエラーを処理するために try-except
ブロックを使用する方法を学びます。これは、オブジェクトが呼び出し可能かどうかわからない場合や、呼び出しによって例外が発生する可能性がある場合に特に有用です。
まず、呼び出し可能でない可能性のあるオブジェクトを呼び出そうとする例から始めましょう。
def my_function():
return "Hello from my_function!"
x = 10
objects_to_test = [my_function, x]
for obj in objects_to_test:
try:
result = obj()
print(f"Object is callable, result: {result}")
except TypeError as e:
print(f"Object is not callable: {e}")
このコードを callable_example.py
ファイルに追加し、前の内容を置き換えます。
次に、ターミナルで以下のコマンドを使用してスクリプトを実行します。
python callable_example.py
以下の出力が表示されるはずです。
Object is callable, result: Hello from my_function!
Object is not callable: 'int' object is not callable
この例では、オブジェクトのリストを反復処理し、それぞれのオブジェクトを呼び出そうとします。try
ブロックでオブジェクトを呼び出そうとします。オブジェクトが呼び出し可能で呼び出しが成功すると、結果が表示されます。オブジェクトが呼び出し可能でない場合、TypeError
が発生し、except
ブロックが例外を捕捉して適切なメッセージを表示します。
次に、オブジェクトは呼び出し可能ですが、呼び出しによって別の種類の例外が発生する可能性があるケースを考えましょう。
def my_function(a, b):
return a / b
try:
result = my_function(10, 0)
print(f"Result: {result}")
except ZeroDivisionError as e:
print(f"Error: {e}")
except TypeError as e:
print(f"Error: {e}")
このコードを callable_example.py
ファイルに追加し、前の内容を置き換えます。
再度スクリプトを実行します。
python callable_example.py
以下の出力が表示されるはずです。
Error: division by zero
この場合、my_function
は呼び出し可能ですが、b = 0
で呼び出すと ZeroDivisionError
が発生します。try-except
ブロックはこの特定の例外を捕捉し、適切に処理します。
try-except
ブロックを使用することで、オブジェクトを呼び出す際に発生する可能性のある潜在的なエラーを予測して処理することができ、より堅牢で信頼性の高いコードを書くことができます。