
【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」というエラーメッセージが出力されます。
【PR】プログラミングや生成AIを無料で学べる「コードキャンプフリー」
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やプログラミングに関するコラム
- 【Python】仮想環境から抜ける方法
- 【Python】文字列から改行コードを除去する方法
- 【Python】10回の繰り返し処理を実装する方法
- 【Python】df(DataFrame)とは?基本的な使い方やデータ操作について解説
- 【Python】指定のファイルがあれば削除する方法
ITやプログラミングに関するニュース
- Azure SQL Managed InstanceがVector型Public Preview対応開始、AI駆動アプリケーション開発の効率化を実現
- GoogleがGmailアプリにGeminiサマリーカードを導入、メール要約の自動表示機能が利用可能に
- ZenchordとNottaが共同開発したAIイヤホンZenchord 1をMakuakeで先行公開、音声認識から議事録作成まで自動化
- Ideinが音声解析AIサービス「Phonoscape」の提供を開始、対面接客現場での会話データ活用が可能に
- Microsoftが.NET 10 Preview 4でdotnet run app.cs機能をリリース、プロジェクトファイル不要でC#実行が可能に