public void test2() //throws RuntimeException 为什么这个地方不需要 throws ?
{
try {
test1();
} catch (DrunkException e) {
System.out.println("test2 try catch(DrunkException)");
RuntimeException newExc = new RuntimeException(e);
// newExc.initCause(e);
throw newExc;
}运行时异常可以自由选择是否catch,所以不必声明
因为这是个运行时异常,不需要throws
可以理解成 throws是把异常抛出给上一级去处理
try catch就是直接捕获异常自己处理掉了,所以不用再抛出
已经使用try{}catch{}块儿了就不用再使用throws抛出异常了