抛出 RuntimeException 时,Java 期望返回值

标签 java aop javac runtimeexception

为什么这不能编译(用 java 8 和 java 10 试过)?它会产生缺少返回语句的错误。

 public class CompilerIssue {
   public boolean run() {
     throwIAE();
     // Missing return statement
   }

   public void throwIAE() {
     throw new IllegalStateException("error");
   }
 }

最佳答案

java 编译器不知道 抛出IAE 总是会抛出异常所以它 假设你最终会到达终点 运行 方法和, 当这种情况发生时, 需要返回值。

关于抛出 RuntimeException 时,Java 期望返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52044362/

相关文章:

java - 如何在java中的每个catch block 之前注入(inject)日志语句

java - 从 Linux Cmd 运行 Java 项目

java - 无法阻止 ant 生成编译器 Sun 专有 API 警告

java - 使用 fastJSON 反序列化零件数据失败

java - 仅当从某个类调用该方法时才拦截该方法?

java - 如何将 List<Object> 保存到 SharedPreferences?

java - AspectJ 列出所有连接点

java - 什么决定了 java 字节码 try catch 处理程序的堆栈图帧的局部变量?

java - Spring Java servlet 返回错误的用户代理

java - 如何确定包含优化的递归算法的大 O?