生活中有很多异常会出现,有些东西就是没办法掌控,超出自己的范围,比如邻居家的小狗突然去世了,想买的衣服突然断货了,又比如一不小心就爱上了你。
常见的异常类型
Exception 异常层次结构的根类
ArithmeticException 算数错误情形,如以零作除数
ArrayIndexOutOfBoundsException 数组下标越界
NullPointerException 数组下标越界
ClassNotFoundException 不能加载所需的类
InPutMismatchException 欲得到的数据类型与实际输入的类型不匹配
IllegalArgumentException 方法接收到非法参数
ClassCastException 对象强制类型转换出错
NumberFormatException 数字格式转换异常,如吧“abc”转换成数字
1:try-catch:
如果try语句在执行时遇到异常,并且这个异常与catch中声明的异常类型相匹配,那么在try块中其余剩下的代码都将忽略,相应的catch会被执行。
2:try-catch-finally
如果try板块中所有的语句正常执行完毕,那么finally块就会被执行。它最终都会被执行的。
3:多重catch块
一段代码可能会引起多种类型的异常,这时可以使用多重catch语句块,分别处理不同的异常,但排列顺序分别是从子类到父类,最后一个一般都是Exception类,因为所有异常子类都继承自Exception类,所以如果将父类异常放到前面,那么所有的异常都将被捕获,后面的catch块中的子类异常将得不到被执行的机会。
4:声明异常
通过throws继续声明异常,如果调用者不打算处理该异常,则可以继续通过throws声明异常,让上一级调用者处理异常,main()方法声明的异常将由Java虚拟机来处理。
5:抛出异常
抛出异常的原因:由于在当前环境中无法解决参数问题,因此在方法内通过throw抛出异常,把问题交给调用者去解决。