※有料会員になるとこの動画をご利用いただけます
詳しい説明を読む
#06:例外クラスの継承関係と except 節
このチャプターでは、例外クラスの継承関係について学習しましょう。
- コード:
try:
a = float(input())
b = float(input())
print(a / b)
except ValueError:
print("入力値は数字でなければなりません。")
except ZeroDivisionError:
print("0 で割ることはできません。")
 
- except 節で受ける例外には、その例外クラスの子孫にあたるクラスのものも含まれる
 - そのため、except 節で受ける例外のクラスを Exception にすると、ほとんどすべての例外を受けることができる
try:
a = float(input())
b = float(input())
print(a / b)
except Exception:
print("例外が発生しました。")
 
- Python の BaseException クラスと Exception クラスはそれぞれ次のようなクラス
- BaseException: すべての例外クラスに継承されるクラス
 - Exception: BaseException クラスのサブクラスで、ほとんどすべての例外クラスに継承されるクラス
 
 - そして、それぞれのクラスは次のような意図で定義されている
- BaseException: すべての例外クラスの基底クラス
 - Exception: システムの終了以外の例外クラス
 
 - たとえば...
- SystemExit というクラスは Exception クラスを継承せずに、BaseException クラスを直接継承している
 - SystemExit クラスは Python の実行を終了させるときに用いられる
 - なぜ、Exception クラスを継承せずに、BaseException クラスを直接継承しているかというと、このクラスの例外が 
except Exception:といった except 節に誤って捕捉されないようにするため - 誤って捕捉されると、エラー出力がされないことがある
 
 
 ログインすると採点できます
 コードの実行