异常简介:Throwable类,所有的异常类都继承于它!它有两个类:Error和Exception
Error一般是指虚拟机错误(VirtualMachineError)和线程死锁(ThreadDeath)
Exception一般是指编码,环境,用户操作输入出现问题,它又有RuntimeException(非检查异常)和检查异常
RuntimeException:运行时异常是由JVM自动抛出并自动捕获,出现错误是一般是代码或逻辑上出错了
1.空指针异常(NullPointerException)
2.数组下标越界异常(ArrayIndexOutOfBoundsException)
3.类型转换异常(ClassCastException)
4.算术异常(ArithmeticException)
检查异常:
1.文件异常(IOException)
2.SQL异常(SQLException)
异常捕获:抛出异常后的方法将会终止执行,然后程序的控制权将会交由catch中的代码块处理。但是处理异常之后的代码继续执行!
try {
//一些会抛出异常的方法
} catch (Exception e) {
//处理该异常的代码块
}finally{
}
多重try/catch语句要注意顺序,由子类异常到父类异常,即由小到大。
异常抛出:
throw
throws--声明将要抛出何种类型的异常,具体形式如下:
public void 方法名(){
throws异常列表{
//调用会抛出异常的方法或者:throw new Exception();
}
}
异常注意事项:
1.处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理。
2.在多重catch块后,可以加一个catch(Exception)来处理可能会被遗漏的异常。
3.对于不确定的代码,也可以加上try-catch,处理潜在的异常。
4.尽量去处理异常,切忌只是简单地调用printStackTrace()去打印输出。
5.具体如何处理异常,要根据不同的业务需求和异常类型去决定。
6.尽量使用finally语句去释放占用的资源。
Java中的异常类库: