Java では、理論的には のみをスローできThrowables
ます。
これは言語によって許可されており、クラスのロード中にチェックされます。しかし、クラスチェックを無効にすると
java -Xverify:none -cp . BadClassThatCompiles
次に、任意のクラス ( から派生していない)をスローするクラスを実行できますThrowable
(例)
なんで?
なぜこのように設計されているのですか..オブジェクトをスローできる仮想マシンと、間違ったコードを除外する必要があるベリファイアを意味します。あたかも一部のコードが間違っている可能性があるかのように。コードじゃなくてデザイン!
なんで?