黑马程序员技术交流社区

标题: 异常 [打印本页]

作者: 赵鹏程    时间: 2012-7-25 20:21
标题: 异常
异常的作用是什么?在代码中是如何捕获/处理异常的?在“catch (ex)”中,“throw”和“throw ex”有什么区别?
作者: 陈云帆    时间: 2012-7-25 23:52
1、作用:异常用于处理系统级或者应用程序级的错误状态,异常处理是一种结构
化的处理过程,其实就是处理错误代码或者思路,捕捉异常,让程序员修改代码。

2、捕捉异常:
根据经验或者规定,在可能出现异常的地方使用try catch捕捉异常。

3、throw和throw ex区别:
throw 重新抛出异常但是不破坏异常发生的调用栈尔“throw ex”会重置调用栈这
样捕获异常的人会以为代码出错在这里。
作者: 许庭洲    时间: 2012-7-26 11:00
1, 异常就是程序在运行过程中由于硬件设备问题,软件设计错误,缺陷等导致的程序错误。
2,
catch (Exception ex)
{
    throw ex; //报出有错误 ,并程序自动抛出异常
}
3,
catch (Exception ex)
{
     throw;//没有报出有错误 ,程序不会自动抛出异常
}

作者: 吴立杰    时间: 2012-7-26 12:01
异常体系:
        |--Throwable
                |--Exception <程序本身可以处理的异常>
                        |--RuntimeException
                        <这些异常是不检查异常,程序中可以选择
                        捕获,也可以不处理,这些异常一般
                        是由于程序逻辑错误引起的,程序应该从
                        逻辑角度尽可能避免该类异常的发生>
                        |--非运行时异常
                        <这些异常为程序语法的异常,为必须处理异常
                        ,如果不处理,程序就不能编译通过
                        如:IOException以及用户自定义的异常,但
                        一般情况下步自定义检查异常>
                |--Erro <程序无法处理的错误
                        这种错误发生时,jvm一般会选择线程终止
                        程序无法运行下去>

什么是异常?异常就是程序运行过程中出现的错误。
java的异常处理框架是java语言健壮性的一个重要体现。java将异常
看做对象来处理,就有了上面的异常体系

异常的捕获和处理:
        格式:
        try{
        //(尝试运行的)程序代码;
        }catch(异常类型的变量名){
        //异常处理代码;
        }finally{
        //异常发生,方法返回之前,总要执行的代码;
        }
throw throws关键字

throw关键字是用于方法体内部,用来抛出一个throwable类型的异常。如果
抛出了非运行时异常,则应该在方法头部声明方法可能抛出异常类型。
该方法的调用者也必须检查吹来抛出的异常。
如果所有方法都层层上抛获取的异常,最终jvm会进行默认处理,就是打印
异常信息和堆栈信息。
如果抛出的是RuntimeException,可以不用在方法的头部声明

throws关键字是由于方法体外部的声明部分,用来声明方法可能会抛出某些异常。

异常处理的应用:
对于一个应用系统来说,以后我们都应该会有自己的一套异常处理框架,这样当
异常发生时,也能得到同意的处理风格,将漂亮的异常信息反馈给用户。
老师说以后会经常用到RuntimeException,应为客户只知道运行异常,其他的异常
他们不会明白的。




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