JAVA异常处理

来源:互联网 发布:windows共享权限设置 编辑:程序博客网 时间:2024/06/05 05:06

一、Java中错误分为两种:Error和Exception;
1、Error表示错误,指代程序员没有办法解决的;
2、Exception表示异常,指代程序员可以通过代码解决;
二、异常是和其他类一样的类,但是所有的异常都必须直接或间接扩展java.lang.Throwable类。
Java中大多数异常都是有java.lang.Exception类,他是大多数用户自定义的基类。
三、Throwable类有两种方法可以用于获取抛出异常。
1、getMessage 用来获取异常信息。
2、printStackTrace  打印堆栈的内容。
四、异常类要继承Exception。
五、try块、catch块和finally块:

1)try 块是java编程语言的一种结构,其中包括了一条或多条可以引发异常的语句,它使用关键字try。语法形式:
try{
//此处的代码可能引发异常
}
2)、catch块  try所引发的异常在catch块中被捕获。一个try块后可接有零个或多个catch块(如果没有catch块,则必须有一个finally块),每个块用于捕获和处理不同的异常。使用关键字catch。一般形式:
Catch(ExceptionClassName exception){
//获取异常信息并处理异常的代码
}
3)finally块  catch或try后可以跟上一个finally块。无论是否引发或捕获异常,编译器都会执行finally中的语句。Finally的目的是定义那些无论try块是否运行成功都要执行的代码。
一般形式:
try{
}catch{
}finally{
//释放资源
}
六、异常的语法:
try{
//一条或多条引发异常的语句
}catch(ExceptionType1 e1){
//处理try块中可用引发异常
}catch(ExceptionType2 e2){
//处理try块中可引发的异常
}finally{
//清除资源
}
1)任何可引发异常的方法调用都必须包含在try块中,且必须有一个catch块来捕获该异常类或超类。如果catch块指定了一个继承层次较高的类(异常类的某个超类),则他会处理该异常的所有子类。超类一般定义在靠后的catch块中。
2)try块必须跟有catch或finally块,或者两者都有。try块不能单独存在。
3)如果出现异常,执行步骤:从代码的顶端开始,将所有引发的异常与每个catch块逐一匹配,直到找到该异常类或其超类为止。然后执行匹配catch块的语句体,如果有finally块,则会执行finally块。
七、一个方法将捕获到的异常再次抛出称为异常传播。
八、手工抛出异常用throw
抛出异常包含三个步骤:
1)先声明方法可抛出的异常列表。可通过throws子句来实现这一点。例如:
Public void myMethod() throws MyException
2)为描述错误的异常类创建一个实例。必须为异类定义一个新类然后在适当的时候为该类创建一个实例。
3)抛出该异常。创建了Exception实例后,就可以使用关键字throw抛出该实例。Throw关键字在调用throw的地方终止方法的执行,并将异常引发给调用的程序。
4)throw和throws的区别:throws写在方法声明后面,后接异常类型;throw写在方法体里,后接异常的对象