您的位置:首页 > 编程语言 > Java开发

day12:《Thinking in Java》笔记第十二章---通过异常处理错误

2017-01-22 23:05 645 查看
一、基本异常

抛出异常:把错误信息传播到一个更大的环境,从而在当前环境不必担心这个问题。

二、捕获异常

1.try块

把所有代码都放到try块里,从而在一个地方就可捕获所有异常

2.catch

catch紧跟在try后面,是异常处理程序。每个catch子句就像是接收一个且仅接收一个特殊类型的参数的方法。

当异常被抛出时,异常处理机制负责搜寻参数与异常类型相匹配的第一个处理程序。然后进入catch子句执行,此时认为异常得到了处理。

三、创建自定义异常

自定义异常必须从已有的异常类中继承,最简单的方法是让编译器为你产生默认构造器。

用java.util.logging工具将输出记录到日志中。

四、异常说明

Java提供语法可告知客户端程序员某个方法可能会抛出的异常类型,然后客户端程序员就可以进行相应的处理。属于方法声明的一部分,紧跟在形参列表之后。

五、捕获所有异常

通过Exception来捕获异常类型。放在处理程序列表末尾。

1.栈轨迹

printStackTrace()方法提供的信息可通过getStackTrace()方法直接访问,返回一个由栈轨迹中的元素组成的数组。

2.重新抛出异常



3.异常链

六、Java标准异常

Throwable对象分为两种类型:Error表示编译时和系统错误,Exception是可以被抛出的基本类型。

1.特例:RuntimeException

七、使用finally进行清理

对于一些代码希望无论try块中的异常是否抛出,它们都能得到执行。通常适用于内存回收之外的情况。

对于无垃圾回收和析构函数自动调用机制的语言来说finally非常重要。

八、异常的限制

异常限制对构造器不起作用。

派生类构造器不能捕获基类构造器抛出的异常。

九、构造器

十、异常匹配

十一、其他可选方式

1.把异常传递给控制台。2.把被检查的异常转换为不检查的异常。

十二、异常使用指南

在下列情况使用异常:1.在恰当的级别处理问题;2.解决问题并且重新调用产生异常的方法;3.进行少许修补,然后绕过异常发生的地方继续执行;4.用别的数据进行计算,以代替方法预计会返回的值;5.把当前运行环境下能做的事情尽量做完,然后把相同的异常重抛到更高层;6. 把当前运行环境下能做的事情尽量做完,然后把不相同的异常重抛到更高层;7.终止程序;8.进行简化;9.让类库和程序更安全。

十三、总结

异常处理的优点之一是使得你可以在某处集中精力的处理你要解决的问题,而在另一处处理你编写的这段代码中产生的错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: