1、异常分两种:(父接口:throwable)
错误:Error JVM系统内部错误、资源耗尽
异常:Exception 其他因变成错误或偶然的外在因素导致的一般问题。
负数开平方
空指针
文件不存在
网络连接中断
分母为零
2、异常
a、ArrayIndexOutofBounds:数组索引越界
b、FileNotFoundException:文件没有发现异常
ab父类是IO异常
c、 NullPointerException:空指针异常
d、EOFException:读取文件末尾异常
e、ArithmeticException:算术异常
f、IllegalArgumentException:非法形参错误
g、ClassNotFoundException:类没有发现异常
c到g父类是RuntimeException运行时异常
3、java异常处理机制
1、主动处理(知道异常):throw抛出异常
有throw必须在对应方法上加throw Exception ,调用方法的那个也得加。
throw只能在语句中,throws可以抛出多个异常,但是必须在方法后。
父类的重写异常必须大于等于子类的异常。
当抛出RuntimeException()异常时,方法前不用加throw异常,在编译处理时候不处理,在运行时自己处理。
2、被动处理(不知道异常):try catch捕捉异常 finally
在try catch中有return语句时,finally语句将在方法反回之前执行。
4种情况finally不能执行:
1、finally块中出了异常
2、在前面的代码中用了System.exit()强退语句
3、程序线程死亡
4、电脑关机
访问错误信息:printStackTrace()打印栈轨迹
程序员只能处理异常不能处理error