java异常

异常结构:


try {

} catch (Exception e) {
// TODO: handle exception
}finally{

}

异常机制:程序出现错误后程序如何处理,控制权交给异常处理器。(异常都是在运行中的,不是编译
时的)

异常处理流程:遇到错误,方法立即结束,同时抛出一个异常对象。调用该方法的程序停止,并搜索

一个可以处理该异常的,并执行其中的代码。

Error及RunTimeException及其子类为未检测异常,及自己会跑出不需要程序员抛出;而其他为已检测

异常,需要程序员抛出。

1、Error体系描述了java运行中的内部错误以及资源耗尽的情形,一般由虚拟机抛出。

2、Exception体系包括RunTimeException和其他非RunTimeException体系:

(1)RunTimeException体系包括错误的类型转换、数组越界访问和试图访问空指针。一定是程序员的

错误。例如可以通过检查数组下标和数组边界来避免数组越界访问异常。

(2)其他一般都是外部错误,例如试图从文件尾后读取数据,这并不是数据本身的错误,而是在应用

环境中出现的外部错误。

客户程序员调用会抛出异常的库函数(库函数的异常由库程序员抛出);客户程序员自己使用throw语

句抛出异常。遇到Error,程序员一般是无能为力的;遇到RuntimeException,那么一定是程序存在逻辑错

误,要对程序进行修改(相当于调试的一种方法);只有已检查异常才是程序员所关心的,程序应该且仅应

该抛出或处理已检查异常。

异常处理:

1、既然捕获了异常,就要对它进行适当的处理。不要捕获异常之后又把它丢弃,不予理睬。

2、在catch语句中尽可能指定具体的异常类型,必要时使用多个catch。不要试图处理所有可能出现的异常。

3、保证所有资源都被正确释放。充分运用finally关键词。
4、在异常处理模块中提供适量的错误原因信息,组织错误信息使其易于理解和阅读。例如当前正在执行的类、方法和其他状态信息,包括以一种更适合阅读的方式整理和组
织printStackTrace提供的信息。

5、尽量减小try块的体积。

6、全面考虑可能出现的异常以及这些异常对执行流程的影响。

访问异常信息:

getMessage():返回该异常的详细描述字符串。

printStackTrace():将该异常的跟踪栈信息输出到标准错误输出。

printStackTrace(PrintStream s):将该异常的跟踪栈信息输出到指定输出流。

getStackTrace():返回该异常的跟踪栈信息。

java异常跟踪栈:

面向对象的应用程序运行时,经常会发生一系列方法调用,从而形成“方法调用栈”,异常的传播则相反:只要异常没有被完全捕获,异常就会从发生异常的方法逐渐向外传播,首先传给该方法的调用者,再传给调用者的调用者。。。。直至最后到main方法,如果main方法依然没有处理该方法,JVM则会终止该程序,并打印异常的跟踪栈信息。

常见异常:

算术异常类:ArithmeticExecption

空指针异常类:NullPointerException

类型强制转换异常:ClassCastException

数组负下标异常:NegativeArrayException

数组下标越界异常:ArrayIndexOutOfBoundsException

文件未找到异常:FileNotFoundException

方法未找到异常:NoSuchMethodException

索引出界:IndexOutOfBoundsException

非法参数 :IllegalArgumentException

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值