黑马程序员技术交流社区

标题: 关于异常的一些疑问 [打印本页]

作者: 杨冉    时间: 2013-4-15 18:09
标题: 关于异常的一些疑问
当我们在写好代码的时候,有些时候会由于输入数据的问题产生一些类似于ArrayIndexOutOfBoundsException之类的异常。
这时如果我们刻意对其进行try catch操作来处理这样的异常,这样既能保证程序不会因为输入数据有问题而中断,又能达到相当于if判断语句的目的,看上去非常的方便,但这样是否会产生一些未知的隐患呢?
希望了解的同学能指点迷津啊~
作者: love_java    时间: 2013-4-15 18:28
 Java异常处理的目的是提高程序的健壮性,你可以在catch和finally代码块中给程序一个修正机会,使得程序不因异常而终止或者流程发生以外的改变。同时,通过获取Java异常信息,也为程序的开发维护提供了方便,一般通过异常信息就很快就能找到出现异常的问题(代码)所在。

异常的开发就是为了编程方便,至于你说的未知隐患一般不会有的。他就是一个向上抛出的过程,不至于在你程序运行时崩溃。


作者: 王大斌    时间: 2013-4-15 18:38
对于免检的异常,为什么系统本身就可以处理而不用你去处理呢?因为它可能在程序任何地方出现,我们也没有必要去依次处理这样的异常,比如说数组越界。但是这并不影响你去处理它,你当然可以这样
        int []a = new int[2];
                try
                {
                a[3] = 9;       
                }
                catch(Exception e)
                {
                        System.out.println("数组越界");
                       
                }

但是对于程序本身来说,这样做没有太大的意义
作者: 赵海洋    时间: 2013-4-15 18:41
对于运行异常,建议不要用try...catch...捕获处理,应该在程序开发调试的过程中尽量的避免,当然有一些必须要处理的,自己知道了那个部分会出现异常,而这种异常你要把它处理的你想要的结果,一般不会存在隐患,因为你知道是哪里出了异常才会处理。而在catch语句中继续抛异常,还不如直接在方法上抛出异常。
作者: 杨冉    时间: 2013-4-15 18:47
我是怕把这种Runtime异常直接处理掉可能会掩盖住其他可能发生的异常。。
作者: PANZERLEADER    时间: 2013-4-16 15:58
你这种异常属于业务逻辑上出错的异常,在常规的开发中通常在业务逻辑层不做截获处理异常操作,而是把异常抛到view层,让view层通过异常去显示不同的界面·




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2