導入
プログラムは、想定外の入力などで**エラー(例外)**を起こして止まることがあります。try / except を使うと、エラーが起きても止まらずに対応できます。
説明
エラーが起きそうな処理を try: に入れ、起きたときの対応を except: に書きます。
try:
x = int("abc") # 数字でない文字列は変換できずエラー
print(x)
except ValueError:
print("数値に変換できませんでした")
try の中でエラーが出ると、残りを飛ばして except に移ります。エラーが出なければ except は実行されません。ゼロ除算など、よくあるエラーにも対応できます。
def safe_div(a, b):
try:
return a / b
except ZeroDivisionError:
return "0では割れません"
print(safe_div(10, 2)) # 5.0
print(safe_div(10, 0)) # 0では割れません
例外処理を使うと、想定外のことが起きてもプログラムを続けられます。
やってみよう
int("abc") の文字列を数字に変えると except が実行されなくなります。試してみましょう。safe_div の引数もいろいろ変えてみてください。
演習
try / except を使って、int("100") を変換して表示し、もし失敗したら 変換失敗 と表示するコードを書いてください(今回は成功して 100 が出ます)。
ヒント1を見る
try: で print(int("100"))、except ValueError: で print("変換失敗")。