Java基础——异常(未完成)

上一篇 / 下一篇  2015-01-06 20:48:39 / 个人分类:原创

异常处理的好处:将完成任务的代码放在try块里,然后统一在一个地方处理所有异常。使得代码更容易编写和维护。

普通问题:在当前环境下可以得到足够信息,以处理这个错误。
异常情形:阻止当前方法或作用域继续执行;因为在当前环境下无法获得足够的信息来处理这个问题。只能从当前环境中跳出,并把问题交给上已经环境。

异常参数:
所有标准异常类都有两个构造器——一个是默认构造器,另一个是接受字符串作为参数,以便把相关的异常信息放入异常对象的构造器。

12.3捕获异常
**区域(try块):可能产生异常的代码。

使用catch关键字捕获异常。当异常被抛出时异常处理机制会搜寻参数(即catch的参数)与异常类型匹配的第一个处理程序

12.4创建自定义异常类型
不拘泥与java已有的异常类型,需要从已有的异常类继承。

throws关键字用于异常说明:方法的声明处,表示该方法可能出现异常(但在方法内是不处理异常的)。
public void f() throws Exception1,Exception2,...{}
throw关键字用于抛出异常,即此处产生了异常;抛出异常时也可不处理,当真正使用了方法并且捕获异常时进行统一的处理即可。

12.6.1栈轨迹
printStackTrace()方法提供的信息可以通过getStackTrace()来直接访问,这个方法将返回一个由栈轨迹中的元素构成的数组(数组中每一个元素的类型为StackTraceElement)

12.6.2重新抛出异常
重新抛出异常把异常抛给上一级环境中的异常处理程序。同一个try块后面的catch子句会被忽略。
fillInStackTrace()方法将返回一个Throwable对象,它是通过把当前调用栈信息填入原来那个异常对象而建立的。调用该方法后,有关原来发生异常的地点的信息就会丢失,剩下的是与新的抛出点有关的信息。

12.6.3异常链

12.7java标准异常
Throwable:可以作为异常被抛出的类。
——error:编译时错误和系统错误
——exception:可以被抛出的基本类型。

特例:RuntimeExcpetion

12.8使用finally进行清理 
因为finally总是会被执行,所以在一个方法中可以从多点返回,并且可以保证重要的清理工作一定会被执行。

12.9待续


--------------------------------------------------------------------------------------------------------

Throwable:
StackTraceElement:


TAG:

 

评分:0

我来说两句

日历

« 2024-04-28  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 18346
  • 日志数: 25
  • 建立时间: 2014-11-10
  • 更新时间: 2015-03-12

RSS订阅

Open Toolbar