在Java中,尝试捕获未在try块中抛出的异常是编译时错误,但在方法中声明抛出的选中异常并不是编译时错误,即使该方法不抛出并且实际上不能抛出该异常。
然而,在eclipse中,可以通过编译器配置(http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fpreferences%2Fjava%2Fcompiler%2Fref-preferences-errors-warnings.htm)来改变这一点。
在标准的java编译过程中,是否可以通过编译器标志产生同样的行为?具体来说,我希望将此检查集成到maven构建中。不能抛出的声明异常会产生不必要的catch块、错误处理程序,甚至单元测试,这些都会分散现有代码的进一步调试和扩展的注意力,产生不必要的、不必要的捕获和测试这些异常的工作。
我们能通过java编译器执行“更干净”的编码标准吗?
发布于 2017-07-11 23:56:24
我们能通过java编译器执行“更干净”的编码标准吗?
对于Java到Java 9的版本,答案是No。或者至少,这就是javac
手册告诉我的(7,8和9)。
确定这一点的方法是启用所有警告(-Xlint:all
),并查看是否收到冗余throws
子句的警告消息。
实际上:
在Java中,试图捕获未在try块中引发的异常是编译时错误.
这仅适用于已检查的异常。编译器无法判断是否可以引发未经检查的异常.在很多情况下。
https://stackoverflow.com/questions/45050925
复制相似问题