【Python】プログラムエラーの例外処理を実施する「try文」と主な例外の種類


Pythonプログラムの例外処理は「try文」を使用します。
try文では、例外(エラー)が発生すると該当する例外クラスの「except」に移動して処理が実行されます。

例外が起きなかった場合は、「else」で処理されます。
最後に例外の発生にかかわらず、finallyで処理されます。

プログラムの例外処理は「try文」を実施する

以下のプログラムでは、ファイルを開いて読み込んだファイル内のデータを出力するプログラムです。

このプログラムに例外処理で実行する際は以下のような流れとなります。

  1. try文を設定
  2. 該当する例外(ここではファイルが存在しない)が発生した場合、「except」で処理
  3. 例外が発生しなかった場合は、「else」で処理を実施
  4. 例外の発生にかかわらず、「finally」で最後に処理をする

テキストファイルが存在しなかった場合の例外処理プログラム

※ try_test.py

try:
    file = open('test.txt', 'r')

except FileNotFoundError:
    print('ファイルを開くことができません。')

else:
    lines = file.readlines()
    for line in lines:
        print(line, end='')
    file.close()

finally:
    print('処理を終了します。')

※ 実行結果

$ python3 try_test.py 
こんにちわ,コンニチワ
ありがとう,ドウイタシマシテ
さようなら,サヨウナラ
処理を終了します。
$ python3 try_test.py 
ファイルを開くことができません。
処理を終了します。
$


例外の種類

上記のようにファイルが見つからない場合の例外処理として、「FileNotFoundError」クラスを使用しました。
このような処理において、主に発生するプログラムエラーの一覧を以下の表にまとめていますので参考にしてください。

例外の種類
例外 内容
BaseException すべての例外クラスの基底
Exception システム終了以外の例外クラスの基底
RuntimeError 未分類エラー
OSError システム関連エラー
FileNotFoundError ファイルが存在しないエラー
FileExistsError ファイルが存在するエラー
ArithmeticError 算術エラー
OverFlowError オーバーフローエラー
ZeroDivisionError ゼロによる算術エラー
FloatingPointError 浮動小数点エラー
LookupError インデックスやキーが無効である場合に発生するエラー
IndexError インデックスエラー
KeyError キーエラー
ModuleNotFoundError モジュールが見つからないエラー
ImportError モジュールのインポート時のエラー
AttributeError 属性参照・代入エラー
ValueError 値エラー
UnicodeError エンコード・デコードエラー
NameError 名前が見つからない際のエラー
SyntaxError 構文エラー
TypeError 型エラー
IndentationError インデントエラー

前回、例外処理に強いプログラムの作り方も書いているので参考にしてください。

【Python】エラーの発生に強いプログラムの作り方

2020年1月13日

try文は重要な設定なので例外処理は必ず覚えておきましょう。


関連記事


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUTこの記事をかいた人

blank

インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!