1.数组下标越界异常
案例:
packagecn.baizhi.day17;publicclassDemo{publicstaticvoidmain(String[] args){//定义一个数组int[] a =newint[5];System.out.println(a[5]);}}
异常信息:
Exception in thread "main"java.lang.ArrayIndexOutOfBoundsException:5
at cn.baizhi.day17.Demo.main(Demo.java:12)=========================================================================================2.空指针异常
案例:
packagecn.baizhi.day17;publicclassDemo{publicstaticvoidmain(String[] args){//空指针异常int[] a =null;System.out.println(a[3]);}}
异常信息:
Exception in thread "main"java.lang.NullPointerException
at cn.baizhi.day17.Demo.main(Demo.java:11)=========================================================================================3.类型转换异常
案例:
packagecn.baizhi.day17;publicclassDemo{publicstaticvoidmain(String[] args){//类型转换异常Animal animal =newDog();Cat cat =(Cat)animal;}}classAnimal{}classDogextendsAnimal{}classCatextendsAnimal{}
异常信息:Exception in thread "main"java.lang.ClassCastException:cn.baizhi.day17.Dog cannot be cast tocn.baizhi.day17.Cat
at cn.baizhi.day17.Demo.main(Demo.java:7)=========================================================================================4.数字格式转换异常
案例:
packagecn.baizhi.day17;publicclassDemo{publicstaticvoidmain(String[] args){String string ="刘洋";int a =Integer.parseInt(string);System.out.println(a);}}
异常信息:Exception in thread "main"java.lang.NumberFormatException:For input string:"刘洋"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at cn.baizhi.day17.Demo.main(Demo.java:6)==================================================================5.算数除0异常
案例:
packagecn.baizhi.day17;publicclassDemo{publicstaticvoidmain(String[] args){int a =3;int b =0;System.out.println(a/b);}}
异常信息:
Exception in thread "main"java.lang.ArithmeticException:/ by zero
at cn.baizhi.day17.Demo.main(Demo.java:7)
异常产生的方式
1.自动产生异常
概念:在程序的运行中,遇到错的代码,就会自动产生异常
案例:
packagecn.baizhi.day17;publicclassDemo{publicstaticvoidmain(String[] args){int a =3;int b =0;System.out.println(a/b);}}2.手动产生异常
我们可以在代码中通过抛出异常的语句手动产生异常
语法:
throw 异常的对象;
案例:
packagecn.baizhi.day17;publicclassDemo{publicstaticvoidmain(String[] args){m1();}publicstaticvoidm1(){System.out.println("方法被调用了");//抛出异常的语句thrownewRuntimeException();}}
异常父类中的方法
public String getMessage():能够返回异常的信息
public StackTraceElement[] getStackTrace():追踪方法的栈异常信息