Java学习笔记9--异常处理

9.1  异常的基本概述

异常处理程序的基本形式:

try{
    //逻辑程序块
}catch (ExceptionType1 e1) {
    //处理代码块1
}catch (ExceptionType2 e2) {
    //处理代码块2
}finally {
    //释放资源代码块
}

9.2   异常类型

在Java中,任何异常对象都是java.lang.Throwable类或其子类的对象,即所有异常类型都是内置类Throwable的子类。

Java学习笔记9--异常处理

                 

   1.Error类 

     指一些无法恢复的严重错误,如系统崩溃,虚拟机出现错误等,这些错误将导致应用程序中断,通常不由程序处理,用户也无法捕获。

  2. Exception类

指由程序和外部环境引起的错误,它是可以被捕获且可能恢复的异常情况,包括RuntimeException类和其他Exception类。

(1)RuntimeException类

     RuntimeException类,表示编程时存在的隐患或错误在运行期间所产生的异常,如数组下标越界异常(IndexOutOfBoundsException),空指针异常(NullPointerException),除0运算(ArithmeticException)等。此异常的产生是程序员的过失。 
 (2)其他Exception类

Java常见异常
异常类名称  异常原因
ArithmeticException 算术错误异常
ArraylndexOutOfBoundsException 数组下标越界
ArrayStoreException 程序试图在数组中存储错误类型的数据
ClassCastException 类型强制转换异常
IndexOutOfBounchsException 当某对象的索引超出范围时抛出异常
NegativeArraySizeException 建立元素个数为负的数组异常类
NullPointException  空指针异常
NumberFormatException     字符串转换为数字异常类
SecurityException  Applet试图执行浏览器的安全设置不允许的动作
StringIndexOutBounchsException 程序试图访问字符串中字符不存在的字符位置
OutOfMemoryException 分配给新对象的内存太小
SockedException 不能正常完成Socked操作
ProtocolException    网络协议有错误
ClassNotFoundException  未找到相应的异常类
EOFException 文件结束异常
FileNotFoundException  文件未找到异常
illegalAccessException  访问某类被拒绝时抛出的异常
InstantiationException 试图通过new Instance()方法创建一个抽象类或抽象接口的实例时出现的异常
IOException  输入、输出异常
NoSuchFileException 字段未找到异常
NoSuchMethodException 方法未找到异常
SQLException     操作数据库异常

                                                                                                                                                                                                                                                                                   

     

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9.3 异常处理

9.3.1 使用try-catch语句捕获异常

语法格式:

try{
    //逻辑代码块1
}catch (ExceptionType1 e1) {
    //处理代码块1
}
//若逻辑代码块1正常,则跳过后面catch语句

      处理代码块1中,可使用下列方法输出相应的异常信息:

     

printStackTrace( )方法 指出异常的类型,性质,栈层次及出现在程序中的位置
getMessage( )方法 输出错误的性质
toString( )方法 给出异常的类型与性质

    9.3.2     使 用多重catch语句捕获异常 

   9.3.3      使用try-catch-finally语句捕获异常  

            finally语句在除下面两种情况下都会执行。

1.在前面的代码中用System.exit( )退出运行;

2.在执行finally块之前,程序所在的线程死亡。

9.4   声明异常和抛出异常

9.4.1 throws声明异常

具体格式如下:

returnType method_name(paramList) throws Exception1,Exception2,...{
    ...
}

 9.4.2  throws抛出异常

throw语句用来直接抛出一个异常,后接一个可抛出的异常类对象。其语法格式如下:

 throws ExceptionObject;
//ExceptionObject必须是Throwable类或其子类的对象