尝试捕获错误

noo*_*mer 0 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();
    }
}
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 6

"永远不会抛出相应的try语句的主体"意味着它所说的内容:你告诉代码捕获一个InvalidValueException,但它不会被try块中的任何代码抛出.显然findArea不会抛出异常(显然你的内联代码没有).

一个try/catch被用来捕捉内发生的异常try块,进行处理(对应catch块),所以没有点在catch对从未发生在一个例外try.IDE(我相信java编译器工具的lint功能)将为您标记,因为捕获不会发生的错误可能是一个逻辑错误.

  • @assylias:的确如此.我认为给予noobprogrammer的用户名,我不会进入检查与未检查的异常.:-) (2认同)