-
例外階層構造: Pythonの例外階層構造は、BaseExceptionクラスをルートとして、さまざまな例外クラスが継承されています。一般的な例外クラスには、Exception、TypeError、ValueError、FileNotFoundErrorなどがあります。これらのクラスは、特定のエラータイプを表し、それぞれ固有のプロパティとメソッドを持っています。
-
エラーハンドリングの方法: Pythonでは、例外をキャッチして適切に処理するためのtry-except文が提供されています。以下は、いくつかの一般的なエラーハンドリングの方法です。
a. try-except文: try-except文は、例外が発生する可能性があるコードブロックを囲みます。例外が発生した場合、tryブロックの実行が中断され、exceptブロックが実行されます。例外クラスを指定することで、特定の例外のみをキャッチできます。また、except節には複数の例外クラスを指定することもできます。
try: # 例外が発生する可能性のあるコード except ExceptionClassName: # 例外の処理
b. else節: else節は、tryブロックが例外を発生させずに完了した場合に実行されるコードを指定します。
try: # 例外が発生する可能性のあるコード except ExceptionClassName: # 例外の処理 else: # 例外が発生しなかった場合の処理
c. finally節: finally節は、例外の発生に関係なく、必ず実行されるコードを指定します。主にリソースの解放などのクリーンアップ処理に使用されます。
try: # 例外が発生する可能性のあるコード except ExceptionClassName: # 例外の処理 finally: # 例外の発生に関係なく実行される処理
d. raise文: raise文は、意図的に例外を発生させるために使用されます。例外クラスを指定して例外オブジェクトを作成し、それを発生させることができます。
raise ExceptionClassName("例外が発生しました")
-
コード例: 以下に、いくつかのコード例を示します。
try: num = int(input("整数を入力してください: ")) result = 100 / num print("結果:", result) except ValueError: print("無効な入力です。整数を入力してください。") except ZeroDivisionError: print("0で割ることはできません。")
try: ファイルが見つからない場合に例外を処理する例です。 ```python try: file = open("myfile.txt", "r") content = file.read() file.close() print("ファイルの
内容: ", content) except FileNotFoundError: print("ファイルが見つかりませんでした。")
上記の例では、`open()`関数で存在しないファイルを開こうとすると`FileNotFoundError`が発生します。例外が発生した場合、`except`ブロックが実行され、"ファイルが見つかりませんでした。"というメッセージが表示されます。
これらはPythonにおける例外階層構造とエラーハンドリングの基本的な方法の一部です。さまざまな例外クラスやエラーハンドリングのテクニックがありますので、具体的な要件やケースに適した方法を選択してください。