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

Java中的异常处理机制的简单原理和应用

2012-10-31 08:24 691 查看
java中Throwable这个类可以被作为异常抛出的类,继承它的分为异常Exception和错误Error.
Exception表示程序需要捕捉和处理的的异常;

Error表示系统级别的错误和程序无需处理的。

我们所需要关心的是Exception. Execption可以分为java标准定义的异常和程序员自定义异常2种.

(1)一种是当程序违反了java语规则的时候,JAVA虚拟机就会将发生的错误表示为一个异常.这里语法规则指的是JAVA类库内置的语义检查。

(2)另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是Thowable的子类。

异常处理是与程序执行是并行的.

Try{

//可能发现异常的语句块

}catch(异常类型,e){

//发生异常时候的执行语句块

} finnally{

//不管是否发生异常都执行的语句块

}

以下是一个自定义异常测试类:

package code;

class MyException extends Exception

{

public void f()

{

System.out.println("this is my Exception!!");

}

}

public class ExceptionTestTwo {

private int i = 0;

private int j;

ExceptionTestTwo(int x) throws MyException

{

f2();

j = x / i;

}

public void f2() throws MyException

{

System.out.println("this is My first Exception!!");

throw new MyException();

}

public static void main(String[] args)

{

try {

new ExceptionTestTwo(9);

} catch (MyException e2) {

e2.f();

} catch (Exception e) {

e.printStackTrace();

} finally {

System.out.println("Finally is first Exception!!");

}

try {

throw new MyException();

} catch (MyException e1) {

e1.f();

} finally {

System.out.println("Finally is second Exception!!");

}

}

}

Error和Exception的区别:

Java中的Error和Exception都是来之Throwable 这个Class的,是他的SubClass,

Error:是系统中的错误,程序员是不能改变,处理的,在程序编译的时候出现的错误.只有通过修改程序才能修正Error.

Exception:是在程序运行的时候捕捉的错误,是可以处理的异常.

语法是:try{}

catch(Exception 名字){}

finally

{进行资源的清理工作: 比如关闭打开的文件: 删除临时的文件; ....}

Exception:它也分两种:RuntimeException(是经常出现的错误可以不catch)和其他Exception(是必须要catch的,这样程序才能继续,像某个方法里面有throw IoException).

JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?

Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。用try来指定一块预防所有“异常”的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的“异常”的类型。throw语句用来明确地抛出一个“异常”。throws用来标明一个成员函数可能抛出的各种“异常”。Finally为确保一段代码不管发生什么“异常”都被执行一段代码。可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句,“异常”的框架就放到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某种“异常”进行处理,堆栈就会展开,直到遇到有处理这种“异常”的try语句。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: