A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨冉 中级黑马   /  2013-4-15 18:09  /  2097 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当我们在写好代码的时候,有些时候会由于输入数据的问题产生一些类似于ArrayIndexOutOfBoundsException之类的异常。
这时如果我们刻意对其进行try catch操作来处理这样的异常,这样既能保证程序不会因为输入数据有问题而中断,又能达到相当于if判断语句的目的,看上去非常的方便,但这样是否会产生一些未知的隐患呢?
希望了解的同学能指点迷津啊~

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

5 个回复

倒序浏览
 Java异常处理的目的是提高程序的健壮性,你可以在catch和finally代码块中给程序一个修正机会,使得程序不因异常而终止或者流程发生以外的改变。同时,通过获取Java异常信息,也为程序的开发维护提供了方便,一般通过异常信息就很快就能找到出现异常的问题(代码)所在。

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

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

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

但是对于程序本身来说,这样做没有太大的意义

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
对于运行异常,建议不要用try...catch...捕获处理,应该在程序开发调试的过程中尽量的避免,当然有一些必须要处理的,自己知道了那个部分会出现异常,而这种异常你要把它处理的你想要的结果,一般不会存在隐患,因为你知道是哪里出了异常才会处理。而在catch语句中继续抛异常,还不如直接在方法上抛出异常。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
我是怕把这种Runtime异常直接处理掉可能会掩盖住其他可能发生的异常。。
回复 使用道具 举报
你这种异常属于业务逻辑上出错的异常,在常规的开发中通常在业务逻辑层不做截获处理异常操作,而是把异常抛到view层,让view层通过异常去显示不同的界面·
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马