Pythonで例外処理を行う方法:try-exceptブロックの基本
Pythonで例外を処理する最もシンプルな方法は、try-exceptブロックを使うことです。
tryブロックの中には例外が発生する可能性のあるコードを記述し、exceptブロックには実際に例外が発生した場合の処理を記述します。さらに、例外が発生しなかった場合にのみ実行したい処理は、elseブロックに記述できます。
コード例
try:
fob = open("test.txt", "r")
fob.write("This is my test file for exception handling!!")
except IOError:
print("Error: can't find the file or read data")
else:
print("Write operation is performed successfully on the file")
fob.close()実行結果
Error: can't find the file or read data
処理の流れの解説
この例では、読み取りモード("r")で開いたファイルに対して書き込み操作(write)を行おうとしているため、入出力に関する例外(IOError)が発生します。
tryブロック内で例外が発生すると、Pythonはその場で残りの処理を中断し、対応するexceptブロックへ移行してエラーメッセージを出力します。このとき、プログラム全体がクラッシュすることなく、適切なエラー処理を行うことができるのがポイントです。
逆に、tryブロック内で例外が一切発生しなかった場合は、exceptブロックはスキップされ、代わりにelseブロックが実行されます。上記の例では「書き込み成功」のメッセージを表示した後、close()メソッドでファイルを確実に閉じています。
まとめ
- try: 例外が発生する可能性のある処理を記述する
- except: 特定の例外が発生した場合の対処を記述する
- else: 例外が発生しなかった場合のみ実行される処理を記述する
try-except構文を活用することで、ファイルが存在しない・読み取れないといった予期せぬ状況にも柔軟に対応でき、安定性の高いプログラムを作成できます。
-
Pythonでループ内の例外を処理するには?try-except文の基本と実例
try-except文で例外を捕捉する方法 Pythonでは、try-except文を使用することで、プログラムの実行中に発生した例外(エラー)を捕捉し、プロセスが異常終了するのを防ぐことができます。以下のようにコードを書き直すことで、例外を安全に処理できます。 a = [] foo = redbullz try: for i in foo: a.append(i) print(a[8]) except Exception as e: print(e) このコードを実行すると、次のような出力が得られます。 list index out of range
-
Pythonのリスト内包表記で例外をキャッチするには?原因と対処法を解説
Pythonには、例外を処理したり無視したりするための組み込み関数は存在しません。そのため、リスト内包表記の中ですべての例外を処理することは不可能です。 その理由は、リスト内包表記が「式(expression)」で構成されている点にあります。例外のキャッチや無視、ハンドリングを行えるのは「文(statement)」である try〜except ブロックだけだからです。式の中に try-except を埋め込むことは、Pythonの文法上できません。 現実的な回避策:関数へ処理を委譲する この制限に対する実用的な解決策のひとつが、例外が発生しうる部分式の評価を「関数」に委譲する方法です。関数の中