1、什么是异常?
程序在执行过程中,发生不被期望的事件,导致程序终止,不能按照预期情况进行处理,这就是异常。
2、Java异常的分类
1)throwable类异常
Java标准库内建了些通用的异常类,这些类以throwable为父类。throwable类又派生出了error类和exception类。
2)error异常
error异常,代表了虚拟机错误,程序员不能用代码进行处理。error出现,代表程序彻底崩溃了。
3)exception异常
编码、环境、用户操作输入出现问题。
一、RuntimeException(非检查异常),运行时异常会由Java虚拟机自动检测捕获并抛出。
出现原因:
1> 空指针异常NullPointerException
String str = null; System.out.println(str.length());
2> 数组下标越界异常ArrayIndxOutOf BoundsException
int[] ary = {1,2,3}; for(int i = 0; i <=3; i++){ System.out.println(ary[i]); }
3> 类型转换异常ClassCasException
Class Animal{ } Class Dog extends Animal { } Class Cat extends Animal { } public class Test { public static void main(String[] args) { Animal a1 = new Dog(); Animal a2 = new Cat(); Dog d1 = (Dog)a2; Dog d2 = (Dog)a2; }
4> 算数异常ArithmeticException
int one = 12; int two = 0; System.out.println(one/two);
二、检查异常
需要手动添加捕获异常的语句。
1> 文件异常IOException
2> SQL异常SQLException
3、异常处理
在Java中用try-catch或try-catch-finally进行异常处理。
try{ //一些会抛出异常的方法 } catch(Exception e) { //处理改异常的代码块 }
当真的出现异常的时候,首先抛出异常的方法会终止执行,然后程序中的控制权将移交给catch块中的异常处理程序来进行处理。catch中的代码可以发出点警告,可以提示程序员如何处理该异常,也可以进行错误日志的记录。处理完以后,程序将继续执行。