第7讲 异常处理、log4j和反射.ppt
文本预览下载声明
第7讲 异常处理、log4j 和反射;教学目标;1、 异常处理;(2)异常的概念
概念:异常是程序执行过程中遇到特殊条件时发生的不正常事件。(英文:exception,意思:例外)
异常事件将会中断程序的正常执行过程;
Java 具有可确保在程序内处理异常的内置功能,增加健壮性。
Java的一个重要观点:一切皆对象。对异常的处理也不例外,定义了异常类,并通过异常类的实例来表示异常事件;
对异常的处理机制也成为判断一种语言是否成熟的标准;
好的异常处理机制会使程序员更容易写出健壮的代码,防止代码中Bug的蔓延。
;ArithmeticException:除数为0时的算术异常
NullPointerException:没有给对象分配内存空间,而又去访问对象的空指针异常
FileNotFoundException:找不到文件的异常
ArrayIndexOutOfBoundsException:数组元素下标越界异常
NegativeArraySizeException:数组长度为负数异常
NumberFormatException:数据格式不正确异常
ClassNotFoundException:找不到相应类的异常
……;这些异常类位于 java.lang包中; Java把程序运行过程中发生的错误分为两类:
错误(Error):JVM系统内部错误、资源耗尽等严重情况
异常(Exception): 其它因编程错误或偶然的外在因素导致的一般性问题。
Throwable类的父类是Object,Throwable类有两个直接类:Error和Exception。只有Throwable类的子类才可以作为一个异常被抛出。具体如下图所示:;这类错误出现时,除了终止程序外别无选择。所以,不应该抛出。;异常类的层次;常见的异常
受检(checked)异常:是指编译器要求必须处置的异常,即程序在运行时由于外界因素造成的一般性异常
未找到指定名称类的异常:java.lang.ClassNotFoundException
访问不存在文件的异常:java.io.FileNotFoundException
操作文件时发生的异常:java.io.IOException
操作数据库时发生的异常:java.sql.SQLException;非受检(unchecked)异常:是指编译器不要求强制处置的异常。一般是指因设计或实现方式不当导致的问题
错误的类型转换异常:java.lang.ClassCastException
组下标越界异常:java.lang.ArrayIndexOutOfBoundsException
空指针访问异常:java.lang.NullPointerException
除零溢出异常:java.lang.ArithmeticException;构造方法:
public Exception( )
public Exception(String s)
说明:字符串s是对该异常的描述
常用方法:
public String toString():返回当前异常对象信息的描述;
public String getMessage():返回当前异常对象信息的详细描述;
public void printStackTrace( ):用来跟踪异常事件发生时执行堆栈的内容;Java提供的异常处理机制有两种:
使用try…catch捕获异常:将可能产生异常的代码放在try语句中进行隔离,如果遇到异常,程序会停止执行try块的代码,跳到catch块中进行处理
使用throws声明抛出异常:当前方法不知道如何处理所出现的异常,该异常应由上一级调用者进行处理,可在定义该方法时使用throws声明抛出异常;Java的异常处理机制优点:
将异常处理代码和正常的业务代码分离,提高了程序的可读性,简化了程序的结构,保证了程序的健壮性;
将不同类型的异常进行分类,不同情况的异常对应不同的异常类,充分发挥类的可扩展性和可重用性的优势;
可以对程序产生的异常进行灵活处理,如果当前方法有能力处理异常,就使用try…catch捕获并处理;否则使用throws声明要抛出的异常,由该方法的上一级调用者来处理异常。;//A.java的改进版本
public class A2{
public static void main(String [] args){
int array[]={10,20,30};
int i;
try{
for (i=0; i=3;i++)
System.out.println(array[i]);
}catch (ArrayIndexOutOfBoundsException e){
System.out.println(异常简要
显示全部