0

我只想catch-throw用 Java 重新实现 Ruby 的结构。

结构catch-throw就像

catch :halt do
  loop do  # an infinite loop
    puts 'foo'
    throw :halt
  end
end

该消息foo仅打印一次。本质是你throw不是例外,所以它在所有rescues中存活并传播调用堆栈直到你catch它。

在 Java 中,我知道有一个类java.lang.Throwable有两个内置子类java.lang.Exceptionjava.lang.Error. 我需要的是一个自定义类,比如说Halt直接继承Throwable,这意味着它既不是Exception可以被第三方库或框架捕获的通用类,也不是Error可能影响测试的类。Halt需要不检查,这样我就不必添加throws Halt方法声明或强制try-catch. 我怎样才能定义这样的类?

4

0 回答 0