catch-throw
Rubyの構造をJavaで再実装したいだけです。
構造はcatch-throw
まるで
catch :halt do
loop do # an infinite loop
puts 'foo'
throw :halt
end
end
メッセージfoo
は一度だけ印刷されます。本質は、あなたthrow
が例外ではないということです。したがって、それはすべての s を生き残り、rescue
あなたがそれまでコールスタックを伝播しますcatch
。
Java では、java.lang.Throwable
2 つの組み込みサブクラスjava.lang.Exception
とjava.lang.Error
. 私が必要としているのはカスタム クラスです。たとえばHalt
、 を直接継承します。つまり、サード パーティのライブラリやフレームワークによってキャッチされる可能性Throwable
のあるコモンでも、テストに影響を与える可能性のある でもないことを意味します。メソッド宣言または強制を追加する必要がないように、非チェックにする必要があります。そのようなクラスをどのように定義できますか?Exception
Error
Halt
throws Halt
try-catch