当在代码抛出异常时,会出现这个问题,这是因为我们在代码抛出了异常而并没有处理,这需要上一层去捕获这个异常,因此我们要在函数加上throws Exception。
public void test() throws Exception{System.out.println("hello world");throw new Exception("xx");}
这样子,当有上层调用test方法,就必须捕获这个异常进行处理,或者继续向上层抛出异常。
因为Exception是check异常,也就是必须在代码层面直接捕获处理的,这类异常有IOException等。
而RuntimeException是uncheck异常,这类异常一般是参数错误异常等,在运行时才会发生的,因此不用显示的捕获。
例如:
public void test() {System.out.println("hello world");throw new RuntimeException("kk");}