Java异常

Java异常
<1>Throwable类是Error和Exception的超类。
<2>Error类
表示的是错误,指的是程序无法恢复的异常情况,对于错误以及错误的子类,程序员是不用进行处理,常见的错误: JVM错误,栈溢出错误。
<3>Exception类
表示的是异常,指的是可能恢复的异常情况,这个类是所有异常类的父类,程序员是可以处理的。
<4>常见的异常(RuntimeException):
算术异常 (ArithmeticException):  除以0
空指针异常(NullPointerException): null对象调用了属性和方法
数组下标越界异常(ArrayIndexOutOfBoundsException): int[] a=new int[2]; a[3]
字符串索引越界异常(StringIndexOutOfBoundsException)
类型转换异常(ClassCastException)   将对象强制转换为不是实例的子类,就会报此异常
负数数组大小异常(NegativeArraySizeException) :数组的大小为负数
数组存储异常(ArrayStoreException) :存储其他数据类型到数组中
<5>异常又分为: 运行时异常 和其他异常(IO异常)
<6>运行时异常和一般性异常的区别:
运行时异常:可以正常编译,只有在代码运行的过程中出现异常。
一般性异常:  编译检查就能发现异常,必须要经过异常处理以后才能正常编译。
<7>捕获异常和抛出异常:
捕获异常:当 Java 运行时系统遇到了异常类对象,会去找能够处理此异常的代码,如果找到了会把这个异常类对象交给代码处理。如果没有找到,程序终止,打印异常信息。
抛出异常:在程序运行过程中,出现了异常就会生成一个异常类对象,把异常类对象交给 Java 运行时系统的过程。

 <8>学习如何捕获异常使用  try…catch..finally

  try{
     // 需要检测的代码
}catch(异常类1  变量){ //变量用于接收发生异常类的对象
   e.printStackTrace(); //打印异常信息
}catch(异常类2  变量){
}…
[finally{
   //一定会执行的代码
}]
  注意: 多个catch ,父类异常必须定义在最后面
<9> throws ,抛出异常
1.当方法中的代码有异常需要进行处理时,可以不使用try..catch,我们可以在方法名小括号后面通过throws关键字将需要处理的异常向外抛出,让调用这个方法的对象去处理。
2.当我们调用这个方法的时候,会提示处理异常,当然我们也可以不处理,继续向上抛出,直到main方法中还没处理的话,程序就会终止。
[<访问控制修饰符>]  <返回值类型>  <方法名>([参数列表])  throws  异常类名列表{
 
}
<10>方法重写时的异常
   重写父类中的方法,那么此方法只能抛出和父类一样的异常或者此异常的子异常,或者和父类异常无关的异常
<11>自定义异常的步骤:
创建一个类,继承 Exception 或者其子类。
创建两个构造器(无参和一个 String 参数的构造器),并使用 super 关键字,显示调用父类中对应的构造器。
  怎么使用自定义异常:
throw 关键字使用自定义异常, throw 关键字用在 try…catch 中用于抛出异常类对象
throw  new  异常类构造器 ;


你可能感兴趣的:(java,java,异常)