关于throw与throws关键字你搞懂了吗?
还是说正题吧—
/**
* @Auther: GavinLim
* @Date: 2021/7/5 - 07 - 05 - 14:54
* @Description: PACKAGE_NAME
* @version: 1.0
*/
class a {
public void add() {
try {
System.out.println(10 / 0);//运行时异常
} catch (Exception e) {
throw e;//抛出异常
}
}
}
class b {
public void byZero() throws Exception{
new a().add();
}
}
public class test {
public static void main(String[] args) {
try {
new a().add();
} catch (ArithmeticException e) {
System.out.println("被除数为0 的错误");
}
}
}
除了自己处理外,原来异常还可以一级一级向上抛,遵循谁调用谁处理的原则,如果调用处也不处理,那么最终会一直向上倒腾到main()方法,入股连main方法也不愿处理—那只有JVM来接手这件事了;
关于异常中throw和throws关键字的区别–
1,throw 位于catch之中,而且后面必须接异常的对象–抛出异常
2,throws 位于方法的声明处–方法中可能会出现异常,调用者可以对此异常进行处理,也可以再次抛给上一级,直至虚拟机;