首页 > 解决方案 > 抛出 RuntimeException 时,Java 期望返回值

问题描述

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

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

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

标签: javaaopjavacruntimeexception

解决方案


java 编译器不知道 throwIAE 总是会抛出异常,因此它假定您最终会到达 run 方法的末尾,并且当这种情况发生时,需要返回值。


推荐阅读