【Python】exceptで複数の例外を処理する方法を簡単に解説

【Python】exceptで複数の例外を処理する方法を簡単に解説

公開: 更新:


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」というエラーメッセージが出力されます。

「Python」を学べるコードキャンプのサービス

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やプログラミングに関するコラム


ITやプログラミングに関するニュース

ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。

コードキャンプIT・プログラミング研修事例/現場により近いところにデジタルを根付かせるDX基礎講座研修|株式会社ブリヂストン - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/業務の効率化・DX推進に向けたIT人材育成への第一歩|株式会社カナエ - ITやプログラミングを知って学べるコネクトメディア 企業・法人向けのIT・プログラミング研修 - ITやプログラミングを知って学べるコネクトメディア 中途採用者向けのIT・プログラミング研修 - IT・プログラミングを知って学べるコネクトメディア

新着記事

対象者別で探す

子供(小学生・中学生・高校生)向け
プログラミング教室検索する

子供(小学生・中学生・高校生)がロボットやプログラミング言語を学ぶことができるオフラインからオンラインスクールを検索、比較することが可能です。

子供(小学生・中学生・高校生)
プログラミング教室検索する

ITやプログラムなどの
最新情報を検索する

日々、新しいITやプログラミング言語の情報が流れていきますが、特定の情報を時系列でニュースやコラムを確認することができます。

ITやプログラムなどの
最新情報を検索する