exceptで例外を効果的に扱う方法
【サンプルコード】
try:
# 何らかの処理を試みる
value = 10 / 0
except (ZeroDivisionError, ValueError) as e:
print("エラーが発生しました:", e)
【実行結果】
エラーが発生しました: division by zero
上記のサンプルコードではtry
ブロック内で例外が発生する可能性のある処理を行っています。ここではvalue = 10 / 0
という式を用いており、これは0で割るという計算を行っています。
0で割る計算は数学的に不正であり、PythonではZeroDivisionError
という例外が発生します。except
ブロックでは(ZeroDivisionError, ValueError)
と記述しており、これによりZeroDivisionError
またはValueError
のどちらかが発生した場合に処理が移ります。
この方法で複数の異なる例外を同じブロックで処理することができます。例外オブジェクトはas e
とすることでe
という変数に束縛され、print
関数を用いてエラーメッセージを出力します。上記のコードの場合、ZeroDivisionError
が発生し、「division by zero」というエラーメッセージが出力されます。
exceptで例外を個別に処理する方法
【サンプルコード】
try:
# 何らかの処理を試みる
value = 10 / 0
except ZeroDivisionError as e:
print("0で割ることはできません:", e)
except ValueError as e:
print("不正な値が入力されました:", e)
【実行結果】
0で割ることはできません: division by zero
try
ブロックでは前の例と同じく0で割る計算を行っており、ZeroDivisionError
が発生します。最初のexcept
ブロックではZeroDivisionError
を捕捉し、この特定のエラーに対するメッセージを出力します。
次のexcept
ブロックではValueError
を捕捉し、異なる種類のエラーが発生した場合に備えています。このように複数のexcept
ブロックを使用することで、異なるタイプの例外に対して異なる処理を行うことが可能です。
上記のサンプルコードではZeroDivisionError
が発生したので、「0で割ることはできません」というメッセージが出力されます。
例外の詳細情報を活用する方法
【サンプルコード】
try:
# 何らかの処理を試みる
value = 10 / 0
except ZeroDivisionError as e:
print("エラーの種類:", type(e).__name__)
print("エラーの詳細:", e)
【実行結果】
エラーの種類: ZeroDivisionError
エラーの詳細: division by zero
ここでもtry
ブロックで0で割る計算を行い、ZeroDivisionError
が発生します。except
ブロックでは例外オブジェクトの型名をtype(e).__name__
で取得し、エラーの種類を出力しています。
さらにe
オブジェクト自体を出力することで、例外の詳細メッセージを表示しています。この方法を使用することで、発生した例外の種類と詳細なメッセージを知ることができます。
この場合、出力されるのは「ZeroDivisionError」と「division by zero」というメッセージです。
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
- CSSのFlexboxで簡単横並び!基本から応用までサンプルコードも使い紹介
- JavaScriptで位置情報を取得する方法と注意点
- JavaScriptで作る効果的なポップアップとモーダルウィンドウ
- JavaScriptによる要素変更:DOMとスタイル制御
- Font Awesome活用法を紹介!HTMLでアイコンを簡単に追加する方法を解説