异常Exception
一、CheckedExceptopn 编译时异常
编译时出现异常,编译异常不处理程序将无法运行
必须使用处理异常的俩种方式之一:
1、throws 抛出异常
2、try…catch 捕获异常
二、RuntimeExceptopn 运行时异常
在程序运行时出现的异常,可以通过健壮代码来避免运行异常或者使用常用处理异常的两种方式
throws 抛出异常、 try…catch 捕获异常。
常见的运行时异常:
/* 1.空指针 NullPointerException
* 2.数组索引越界 ArrayIndexOutOfBoundsException
* 3.类型转换异常 ClassCastException (引用数据类型父类|父接口引用强转为实现类|子类类型)
* 4.数学异常 ArithmeticException
* 5.负数异常 NegativeArraySizeException
* 6.数字格式异常 NumberFormatException
三:处理异常
1、throws 抛出异常是当前不处理,当有人调用时再处理和统一管理异常
2、try…catch 捕获异常:在遇到异常的时候当前位置就处理,捕获某个异常对象
如果try中遇到异常了,try中下面的代码不会执行,直接去执行对应catch中的内容,如果没有遇到异常,
正常执行所有的try中代码一个try后可以跟一到多个catch,捕获小范围的异常catch写在上面,否则下
面的catch执行不到
/* try{
* 可能会出现异常的代码;
* }catch(StringIndexOutOfBoundsException e){
* e....
* 如果出现这个类型的异常,就执行的代码
* }catch(NullPointerException e){
* ...
* }catch(FileNotFoundException e){
* ..
* }catch(Exception e){
* ....
* }finally{
* 无论是否出现异常,肯定会执行的代码
* }
*/
3、方法重写时: 如果父类方法存在异常抛出 子类重写方法抛出异常范围<=父类
4、throw制造异常,把对象作为异常使用
hrow new FileNotFoundException("文件找不到了....");
5、自定义异常:除了java提供的异常,我们还可以自定义异常
自定义异常继承Exception|RuntimeException|等子类