LoginSignup
0
0

More than 3 years have passed since last update.

【Udemy Python3入門+応用】  65. 例外処理

Posted at

※この記事はUdemyの
現役シリコンバレーエンジニアが教えるPython3入門+応用+アメリカのシリコンバレー流コードスタイル
の講座を受講した上での、自分用の授業ノートです。
講師の酒井潤さんから許可をいただいた上で公開しています。

■例外処理

◆基本

l = [0, 1, 2]
i = 5

try:
    print(l[i])
except:
    print('Error!')
result
Error!

try: の中に書いたものを実行しようとし、それが何らかのエラーにより実行できなかった場合、
except: 内の処理が実行される。

◆エラーの種類の指定

l = [0, 1, 2]
del l

try:
    print(l)
except IndexError as ex:
    print('Error massage: {}'.format(ex))
except NameError as ex:
    print('Error massage: {}'.format(ex))
result
Error massage: name 'l' is not defined

IndexError だったらこの処理、
NameError だったらこの処理、といったようにエラーの種類の指定もできる。

◆finally:

l = [0, 1, 2]
i = 5

try:
    print(l[i])
except:
    print('Error!')
finally:
    print('clean up')
result
Error!
clean up

finally: 内に書いた処理は、tryが成功しようが、exceptとなろうが、必ず実行される。

l = [0, 1, 2]
i = 5

try:
    print(l[i])
finally:
    print('clean up')
result
clean up
Traceback (most recent call last):
  File "/~~~", line 5, in <module>
    print(l[i])
IndexError: list index out of range

したがって、実際エラーが起きてしまった場合でも、finally 内の処理が先に実行され、その後エラーでプログラムが停止することになる。

◆else:

l = [0, 1, 2]

try:
    print(l[0])
except:
    print('Error!')
else:
    print('done')
result
0
done

else: を使うと、 try: 内の処理が成功した場合のみ、 else: 内の処理が実行される。

0
0
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
0
0