P132
●初期化されていない変数bを使ったエラー(NameError)
xa = 10
a / b
●ゼロで値を割った(ZeroDivisionError)
xb = 0
a / b
●"100個"を整数値に変換できなかった(ValueError)
xnum = int("100個")
●空のリストから値を取り出そうとした(IndexError)
xnums = []
nums.pop()
●開こうとしたファイルが見つからなかった(FileNotFoundError)
xfilein = open("myfile", "r")
==============================================================
p133 例外処理を取り込む try ~ except
書式 例外処理
try : 例外処理が発生する可能性のある処理 except : 例外処理を受けて実行する処理
p134
xwhile True :
num = input("何個ですか?(qで終了)")
if num == "q":
print("終了しました。")
break
# 入力された値を整数に変換できない場合例外処理を行う
try :
price = 120 * int(num)
print("金額", price)
except :
print("エラーです。正しい数値を入れてください。")
書式 例外処理
try : 例外が発生する可能性がある処理 exept :
例外を受けて実行する処理
finally : try文を抜ける前に実行する処理
p135
xnum = 0
try :
value = 120 / num
print(value)
except :
print("エラーになりました。")
finally :
print("計算終わり。")
p136
例外の種類を振り分ける
書式 例外によって対応を振り分ける1
try : 例外が発生する可能性がある処理 except 例外1 : 例外1に対応する例外処理 except 例外2 : 例外2に対応する例外処理 except: 例外1、例外2のどちらでもない例外の処理
書式 例外によって対応を振り分ける2
try : 例外が発生する可能性がある処理 except (例外1、例外2) : 例外1、例外2に対応する処理 except (例外3、例外4) : 例外3、例外4に対応する処理 except: 例外1~4のではない例外の処理
p137
xsum = 7600
while True :
num = input("何人ですか?(qで終了)")
if num == "q":
print("終了しました。")
break
# 例外を振り分けて例外処理を行う
try :
price = round(sum / int(num))
if price < 0 :
# マイナスの場合は無視
continue
print("1人当たりの金額", price)
except ValueError :
print("数値を入れてください。")
except ZeroDivisionError :
print("0以外の数値を入力してください。")
p138
書式 elseがあるtry文 try : 例外が発生する可能性がある処理 except 例外1 : 例外1に対応する処理 except 例外2 : 例外2に対応する処理 else: 例外が発生しなかったときに実行する処理 finally : try文を抜ける前に必ず実行する処理
p139
例外情報を調べる except as
書式 例外に名前を付けて情報を調べる
try : 実行するステイトメント except 例外1 as 名前1: 例外1に対応するステートメント except 例外2 as 名前2: 例外2に対応するステートメント
p140
xsum = 7600
while True :
num = input("何人ですか?(qで終了)")
if num == "q":
print("終了しました。")
break
# 例外を処理する
try :
price = round(sum / int(num))
except Exception as error :
print("エラーになりました。")
print(error) # エラー情報を出力する
else :
if price < 0 :
# マイナスの場合は無視
continue
print("1人当たりの金額", price)
==============================================