16
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Python例外処理

Last updated at Posted at 2020-05-31

代表的な例外

####TypeError
例:TypeError: unsupported operand type(s) for /: 'str' and 'int'
String型を計算しようとしたときなどに起きるエラー

####ZeroDivisionError
例:ZeroDivisionError: division by zero
1/0のようにゼロで割ってしまったときに起きるエラー

####NameError
例:NameError: name 'hoge' is not defined
定義していない変数を使ったときに起きるエラー

####AttributeError
例:AttributeError: type object ‘list’ has no attribute 'fuga'
存在しない属性にアクセスしようとしたときに起きるエラー

Pythonの例外処理ルール

  • try: 括ったコードを例外処理する
  • except <error-case>: error-caseの例外発生時に実行するブロック
  • except: どんな例外発生時にも実行するブロック
  • else: 例外が発生しなかった場合のみ実行するブロック
  • finally: 例外が発生してもしなくても実行するブロック

try-except

実行した処理でエラーが派生した場合でも処理を継続させたい場合に使用する


Num = [1,2,3]
n = 4

#処理を継続させつつ、エラーを抽出
try:
    print(Num[n])  
except:
    print('エラー')  #データがない場合、エラー

print('処理継続')

#出力結果
エラー
処理継続

その他の例外処理

例外が複数ある場合は、例外の種類に応じて処理を分ける

Num = [1,2,3,4]
n = 5
n = '文字列'   

try:
    print(Num[n])
except IndexError as ie:
    print('エラー内容: {}'.format(ie))
except NameError as ne:
    print(ne)
except Exception as ex: #IndexError、NameError以外のエラーが発生した場合
    print('エラー内容: {}'.format(ex))

print('例外発生')

#出力結果
エラー内容: list indices must be integers or slices, not str
例外発生

finaly

エラーが発生しても必ずfinaly以下の処理を実行する

Num = [1,2,3,4]
n = 5
n = '文字列'   

try:
    print(Num[n])
except IndexError as ie:
    print('エラー内容: {}'.format(ie))
except NameError as ne:
    print(ne)
except Exception as ex: #IndexError、NameError以外のエラーが発生した場合
    print('エラー内容: {}'.format(ex))
finally:    #←必ず実行したい処理
    print('必ず実行される')

print('例外発生')

#出力結果
エラー内容: list indices must be integers or slices, not str
必ず実行される
例外発生

raiseとpass

故意にエラーを発生させたい場合はraiseを使う

try:
    raise TypeError
except:
    print('故意にエラーを発生')
16
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?