我只想catch-throw
用 Java 重新实现 Ruby 的结构。
结构catch-throw
就像
catch :halt do
loop do # an infinite loop
puts 'foo'
throw :halt
end
end
该消息foo
仅打印一次。本质是你throw
不是例外,所以它在所有rescue
s中存活并传播调用堆栈直到你catch
它。
在 Java 中,我知道有一个类java.lang.Throwable
有两个内置子类java.lang.Exception
和java.lang.Error
. 我需要的是一个自定义类,比如说Halt
直接继承Throwable
,这意味着它既不是Exception
可以被第三方库或框架捕获的通用类,也不是Error
可能影响测试的类。Halt
需要不检查,这样我就不必添加throws Halt
方法声明或强制try-catch
. 我怎样才能定义这样的类?