一 javase学习记录06

来源:互联网 发布:如何办理电信cn2网络 编辑:程序博客网 时间:2024/05/22 16:44

文章中内容部分来自《java核心技术卷1》 《java编程思想》大部分来自网络 http://lavasoft.blog.51cto.com/62575/18920/

java学习路线图  http://www.cnblogs.com/biehongli/p/5754555.html

一 java 异常处理

1 异常类有两个来源,一是Java语言本身定义的一些基本异常类型,二是用户通过继承Exception类或者其子类自己定义的异常。
2 异常的对象有两个来源,一是Java运行时环境自动抛出系统生成的异常,而不管你是否愿意捕获和处理,它总要被抛出。二是程
   序员自己抛出的异常,这个异常可以是程序员自己定义的,也可以是Java语言中定义的,用throw 关键字抛出异常,这种异常常
   用来向调用者汇报异常的一些信息。
3 异常是针对方法来说的,抛出、声明抛出、捕获和处理异常都是在方法中进行的。
4 Java异常处理通过5个关键字try、catch、throw、throws、finally进行管理。



 java 异常分类

1 Throwable 类是 Java 语言中所有错误或异常的超类。
2 Exception 表示程序本身可以处理的异常。
3 Error 是 Throwable 的子类,表示仅靠程序本身无法恢复的严重错误,
4 RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。这种异常可以通过改进代码实现来避免。
5 调用 Thread 类中带有零参数的 stop 方法时,受害线程将抛出一个 ThreadDeath 实例。

6 对于可能出现异常的代码,有两种处理办法 

a 在方法中用try...catch语句捕获并处理异常,catach语句可以有多个,用来匹配多个异常。
b 对于处理不了的异常或者要转型的异常,在方法的声明处通过throws语句抛出异常。

7 异常处理的语法规则:
a try语句不能单独存在,可以和catch、finally组成 try...catch...finally、try...catch、try...finally三种结构,catch  语句可以有一个或多个,finally语句最多一个,try、catch、finally这三个关键字均不能单独使用。
b try、catch、finally三个代码块中变量的作用域分别独立而不能相互访问。如果要在三个块中都可以访问,则需要将变量定义  到这些块的外面。
c 多个catch块时候,Java虚拟机会匹配其中一个异常类或其子类,就执行这个catch块,而不会再执行别的catch块。
d throw语句后不允许有紧跟其他语句,因为这些没有机会执行。
e 如果一个方法调用了另外一个声明抛出异常的方法,那么这个方法要么处理异常,要么声明抛出。

8 throw和throws关键字的区别:throw用来抛出一个异常,在方法体内。语法格式为:throw 异常对象。throws用来声明方法可能会抛出什么异常,在方法名后,语法格式为:throws 异常类型1,异常类型2...异常类型n。

9 Exception类可以分为两种:运行时异常和受检查异常。运行时异常表示无法让程序恢复运行的异常,导致这种异常的原因通常是由于执行了错误的操作。一旦出现错误,建议让程序终止。受检查异常表示程序可以处理的异常。如果抛出异常的方法本身不处理或者不能处理它,那么方法的调用者就必须去处理该异常,否则调用会出错,连编译也无法通过。

10 Java异常处理的原则和技巧
a 避免过大的try块,不要把不会出现异常的代码放到try块里面,尽量保持一个try块对应一个或多个异常。
b 细化异常的类型,不要不管什么类型的异常都写成Excetpion。
c catch块尽量保持一个块捕获一类异常,不要忽略捕获的异常,捕获到后要么处理,要么转译,要么重新抛出新类型的异常。
d 不要把自己能处理的异常抛给别人。
e 不要用try...catch参与控制程序流程,异常控制的根本目的是处理程序的非正常情况。

0 0
原创粉丝点击