java - try catch 错误

标签 java exception try-catch

我的 catch 语句中出现红色下划线,不知道出了什么问题,我收到的错误是“永远不会在相应的 try 语句的正文中抛出”,这是什么意思?在我看来一切都很好。

public void validateTriangle(int sidea, int sideb, int sidec) throws InvalidValueException {
    try {
        if ((sidea + sideb > sidec) || (sideb + sidec > sidea) || (sidea + sidec > sideb)) {
            findArea(side1, side2, side3);
        }
    } catch (InvalidValueException excep) {
        message = excep.getMessage();
    }
}

最佳答案

“从不在相应的 try 语句的主体中抛出” 的意思正是它所说的:您已经告诉代码捕获 InvalidValueException,但它不会被抛出try block 中的任何代码。显然 findArea 不会抛出该异常(显然您的内联代码也不会抛出该异常)。

一个try/catch block用于捕获 try block 中发生的异常并处理它们(在相应的 catch block 中),因此 catch 没有任何意义对于 try 中从未发生的异常。 IDE(我相信 java 编译器工具的 lint 功能)将为您标记这一点,因为捕获不会发生的错误可能是逻辑错误。

关于java - try catch 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12839344/

相关文章:

java - 与泛型类型的绑定(bind)不匹配

java - @Repository count 查询 - 方法executeUpdate 不能用于查询

c++ - C++中的对象销毁

C++ 在函数中尝试 Throw Catch?

java - 如何修复这个基本程序? Java do-while 循环

java - 如何加载特定于组件的资源包进行翻译?

java - Android-java 与 PC-Java

ruby-on-rails - 从 Rails 4 升级到 Rails 5 后,自定义错误处理不再有效

java - 试图获取联系信息无效的列数据1

python-3.x - 使用 Python 模块 aiohttp 捕获 http 错误连接的正确方法是什么?