exceptブロックが実行される際にasキーワードで名前を指定すると、例外をその名前の変数に一時的に保管できる
この変数はtry文が終わると破棄されるのでtry文の外で値を使いたい場合は別の変数に代入する必要がある
※Exceptionクラスを継承した例外オブジェクト
エラーの種類Nいよって例外オブジェクトを作るクラスが異なるが、ValueErrorクラスはValueError>Exception>BasicExceptionのようにクラスを継承している。
一般的な実行エラーはExceptionクラスを継承しているので、except Exception:で全ての例外を処理できる
# 例外に名前を付けて情報を調べる try: 実行を試すステートメント except 例外1 as 名前1: 例外1に対応するステートメント except 例外2 as 名前2: 例外2に対応するステートメント
#例外になったら、エラー情報を表示して処理を続行する sum = 7600 while True: num = input("何人ですか?(qで終了)") if num == "q": print("終了しました") break #例外を処理する try: price = round(sum/int(num)) #例外オブジェクトをerrorで参照できるようにする except Exception as error: print("エラーになりました") #エラー情報を出力する print(error) #例外が発生しなかったときはelseブロックが実行されます else: if price < 0: #マイナスの場合は無視 continue print("1人当たりの金額",price)
出力例