1、异常
1.1 生活中的异常
- 在很正常的生活过程中,发生了小概率的事件,让生活有了点不一样。
- 99%的情况下,正常生活,1%的突发情况在所难免,1%就是“异常”
- 异常:与平常不一样。
1.2 程序中的异常
- 程序一旦报错,程序就会终止
- java中的异常处理机制中记录了编程中遇到所有问题的解决方案,所以使用异常处理机制才不会让程序发生错误进而终止
- 异常机制,类似“明星经纪人”,遇到什么问题都交给经纪人去处理
1.3 处理异常
- try:尝试捕获代码的异常
- catch:真正的捕获异常,并做出处理
-
多重catch,类似于多重if,逐一匹配(多选一)
-
catch的异常类型的顺序,要先子后父,也就是由小到大
-
Exception是所有异常的祖宗,所有异常的父类
try { int i = 10/0; }catch(ArithmeticException e1) { //子类 System.out.println("1111"); }catch(Exception e2) { //父类 System.out.println("2222"); }
-
- finally:无论程序是否出现异常,都必须执行的代码块
- finally唯一不会执行的时候,就是在finally之前退出java虚拟机
- 人需要氧气存活,java程序需要jre环境才能运行
- System.exit(1); 相当于把人断氧气,让java退出jre环境,这样的话,程序终止!
- System.exit(0)是正常退出程序,
- System.exit(1)或者说非0表示非正常退出程序
- 如果不设计到jvm优化,0和非0都一样。
- 如果要停止一个程序,退出jvm是最高优先级的代码。没有之一!
- 面试题:如果碰到了retrun,finally依然会执行,而且在return之前执行
- throws:声明异常
- 我定义一个方法,我这个方法会产生异常,我就要在方法的小括号后面吧异常声明出来,让所有调用我的人,知道我会有异常的产生。
- 例如:相亲,我就要实事求是,我会在我的简历上写明白,我是否有住房,是否有负债等等信息,都需要明确声明出来,这样,每一个看我简历的人,就知道和我在一起可能会发生的问题。
- throw:自定义异常
- 自行创建一个异常