异常机制
Java是采用面向对象的方式来处理异常,处理过程是:
1,抛出异常:在执行一个方法的时候,如果发生异常,则这个方法生成代表这个异常的一个对象,停止执行,并把这个生成的异常对象交给JRE
2,捕获异常:JRE拿到这个异常后,寻找相应的代码来处理该异常,JRE在方法的调用栈中查找,从生成异常的方法开始回溯,直到找到相应的异常处理代码为止
异常的根类为java.lang.Throwable,Throwable分为两个子类,一个是Error,另一个是Exception,如图
Error是错误,不需要管它,而Exception是需要我们处理的异常,分为RuntimeException和CheckedException,我们常用到的异常有:ArithmeticException,NullPointerException,ClassCastException和ArrayIndexOutOfBoundEcxeption,空指针异常就是访问一个空对象的成员变量或者方法的时候,就会出现空指针异常,建议加个判断语句
package cn.com.exception;
public class TestException {
public static void main(String[] args) {
int a = 0;
int b = 1;
int c = b/a;
System.out.println(c);//会出现ArithmeticException
String str = null;
System.out.println(str.charAt(1));//会出现空指针异常
Animal aa = new Dog();
Tiger bb = (Tiger) aa;//会出现CCE异常
int[] array = new int[3];
System.out.println(array[4]); //会出现ArrayIndexOutOfBoundEcxeption
}
}
class Animal {
public static void eat() {
System.out.println("吃东西");
}
}
class Dog extends Animal {
public static void eat2() {
System.out.println("吃骨头!!");
}
}
class Tiger extends Animal {
public static void eat2() {
System.out.println("吃肉肉!!");
}
}