关于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 位于方法的声明处–方法中可能会出现异常,调用者可以对此异常进行处理,也可以再次抛给上一级,直至虚拟机;