为什么这里不需要退货声明?

干燥飞艇

如果我有方法:

public static boolean getA() throws Exception{
    try{
        throw new Exception();
    }finally 
    {

    }
}

无需返回声明。而且,如果我们尝试在末尾添加return语句,则会产生“ unreachable statement ”错误。

为什么会这样呢?确定程序不会从块中出来,并且会引发异常吗?

此外,如果我们添加一个catch块而不是finally块,那么它要求在其中存在return语句。

青年霍比特人

因为您已经指定了throw语句,并且方法定义中没有其他内容。这就是为什么。我想就是这么简单。

return语句将不可访问,因为它将与所有情况无关地引发异常。

捕获将需要return语句,因为您现在正在显式处理异常,因此它希望您按照方法定义中的声明返回。

希望您知道,您可以同时保持接球和最后挡球。因为它们服务于自己的不同目的。

Java异常

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我在这里不需要SFINAE

为什么这里不需要显式强制转换?

为什么JavaScript在函数声明后不需要分号?

为什么Kotlin打印声明不需要范围说明?

为什么不需要声明List实现?

为什么我不需要在这里为独立的新表命名?

为什么我在这里得到垃圾(不需要的)输出?

为什么在类需要的结构中不需要声明self?

为什么不需要开玩笑?

为什么“ typeof”不需要括号?

* ngFor为什么不需要括号?

为什么我的一个变量不需要声明,而另一个变量则不需要声明?

为什么在通过模板的静态分派中不需要前向声明?

为什么转换函数声明不需要至少一个define-type-specifier

为什么Perl的foreach不需要用my声明其变量?

为什么框架通用接口成员不需要将自己声明为新的?

为什么部分专业化不需要前向声明?

Lua-为什么全局变量不需要声明?

为什么LuaJIT的FFI模块不需要声明的调用约定?

为什么Java需要接口而Smalltalk不需要接口?

为什么`head`需要`()`和`shape`不需要?

为什么后增量不需要复制而预增量不需要复制

什么是 For 循环?为什么在 R 中不需要它?

为什么我应该在声明时初始化数据成员(在构造函数上不需要)?

为什么我的 DLL 不需要 DllMain 函数?

为什么我的Keras LSTM中不需要TimeDistributed?

为什么OpenVPN启用我不需要的路由?

为什么不需要staticmethod装饰器?

Logrotate:“日志不需要旋转”为什么?