使用Rise/Trow-in-Sorbet的方法的语法

使用Rise/Trow-in-Sorbet的方法的语法,sorbet,Sorbet,有没有一种方法可以指定一个方法可能会引发哪些异常,从而知道哪些异常可能需要救援 在Java()中,它看起来是这样的: void example(int: x) throws Exception { if x > 42 throw new Exception; } 也许是这样的 不要混淆:通常的异常是使用raise。。。Ruby中的rescue begin raise StandardError rescue StandardError end 但是您也可以在Ruby中

有没有一种方法可以指定一个方法可能会引发哪些异常,从而知道哪些异常可能需要救援

在Java()中,它看起来是这样的:

void example(int: x) throws Exception {
  if x > 42 throw new Exception;
}

也许是这样的

不要混淆:通常的异常是使用
raise。。。Ruby中的rescue

begin
  raise StandardError
rescue StandardError
end
但是您也可以在Ruby中
抛出对象和
捕获对象

catch(:something) do
  throw :something
end
我不经常用这个。实际上是想完全避免。但是冰糕可能也有这样的语法!?例如:


Sorbet不支持选中的异常。 原因是,现在使用Java的人们普遍认为,即使是Java的其他特性,他们也不能很好地使用。例如,在下面的代码段中

foo do
  # code that calls into something that can throw
end
在Java中,您被正式地强制捕获
#
中的异常,并将其作为未经检查的异常重新显示,因为通常块可能会逃逸到堆中。
总的来说,如果您研究Java之后的语言:Scala、Kotlin,它们都不支持检查异常。

Sorbet不支持检查异常。 原因是,现在使用Java的人们普遍认为,即使是Java的其他特性,他们也不能很好地使用。例如,在下面的代码段中

foo do
  # code that calls into something that can throw
end
在Java中,您被正式地强制捕获
#
中的异常,并将其作为未经检查的异常重新显示,因为通常块可能会逃逸到堆中。 总的来说,如果您研究Java之后的语言:Scala、Kotlin,它们都不支持检查异常

foo do
  # code that calls into something that can throw
end