首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Java异常

Java异常

Java异常
java异常处理是通过try-catch-finally三个关键字来实现的。用try来监视执行一段程序,如果出现异常,系统就会抛出(throws)异常,可以根据异常的类型来捕捉(catch)相应的异常来处理它,或最后(finally)由默认处理方法来处理。
下面是其语法格式:

                try {
                        // 接受监视的程序块,在此区域内发
                        // 生的异常,由catch中指定的程序处理
                } catch (Exception e) {
                        // 处理异常
                } finally {
                        // 最终处理(默认处理)
                }try语句
在执行程序的过程中,使用try{}语句监视一段程序段,该程序段可能会产生并抛出一个或多个异常。try语句就像一个监视器,它监视放置在其内部的程序段执行时是否发生异常,如果有异常就会根据异常的类型自动生成相应的异常对象并将其抛出。并且使用后面的catch语句捕获和处理此异常对象。如果没有异常,则程序忽略catch代码段向下执行其他代码。


catch语句
每个try语句伴随一个或多个catch语句,用于捕获try代码段所产生的异常并做相应的处理。
catch紧跟一对圆括号,括号内声明了一个某种异常类型的形参,用于指明其所能捕获的异常类型,运行时系统通过参数值把被抛弃的异常对象传递给catch语句。
当然也可以用一个catch语句处理多个异常类型,这时他的异常类型应该是这多个异常类型的父类,但这种方式使得在程序中不能确切判断异常的具体类型。
如果try语句后跟多个catch语句,并且捕获和处理的异常存在继承关系,那么应该先捕获子类异常然后再捕获父类异常(如果先捕获父类异常后捕获子类异常将导致子类异常不能被执行,程序会报错)。

finally语句
捕获异常的最后一步时通过finally语句为异常处理提供一个统一的出口,使得在控制流程转到程序的其他部分以前,能够对程序的状态统一管理。
既不论是否发生异常finally语句都会被执行。
finally语句不是必须的,很多时候也可以仅使用try-catch语句来捕获和处理异常。
举一个简单的例子:
        public static void main(String[] args) {
                try {
                        int[] a = { 1 };
                        System.out.println(a[2]);
                } catch (Exception e) {
                        System.out.println(e);
                } finally {
                        System.out.println(“finally语句最后一定会执行”);
                }
        }运行如上代码,可以看到数组a的长度为1,既最大索引为0,而接下来控制台打印了数组a的第2个索引,此时出现异常,而由于使用了try-catch-finally语句来对异常进行了捕获(Exception是此时出现异常的父类),加下来执行catch中的代码,控制台打印出异常e,接着执行finally语句中的代码,如下所示:
java.lang.ArrayIndexOutOfBoundsException: 2
finally语句最后一定会执行关于异常处理的概述可以参考
Java从入门到入土(45)异常处理概述
所谓错误,是在程序运行中发生的异常事件,如除0溢出,数组越界等。这些事件的发生阻止程序的正常运行。为了加强程序的健壮性,程序开发过程中必须考虑到可能发生的各种异常事件并作出相应的处理。 在java中,

意之消沉8556
返回列表