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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王杰123 中级黑马   /  2013-4-2 15:51  /  1284 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王杰123 于 2013-4-2 18:11 编辑

  在自定义异常中,在程序中自定义Exception和RuntimeException 的异常,有何含义?通俗的说哈。在定义Exception异常是需要声明一下,日后会处理,而RuntimeException不需要声明,是为了自己解决。你们是怎么理解的哈?我还是有点不懂,希望高手帮帮忙。

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

3 个回复

倒序浏览
java认为编译时异常都是可以被处理的异常,所以java程序必须显式处理编译时异常。果程序没有处理编译时异常,该程序就会在编译时发生错误,无法通过编译。对于编译时异常处理方式有两种:1)当前方法明确知道该如何处理该异常,程序应该使用try...catch块来捕获该异常,然后在对应的catch块中修复该异常。2)当前方法不知道该如何处理这种异常,应该在定义该方法是声明抛出该异常。
Runtime异常则更加灵活,Runtime异常无需显示声明抛出,如果程序需要捕获Runtime异常,也可以使用try...catch块来实现。

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

回复 使用道具 举报
1,异常是对问题的描述,将问题进行对象的封装。异常的好处:将问题进行封装;将正常流程代码和问题处理代码相分离,方便于阅读。

2,Exception异,常是可以处理的异常,定义Exception类型的异常需要继承Exception,这类异常的特点就是必须在函数上声明,而且调用者需要处理。

RuntimeException异常是Exception异常的子类,函数内如果抛出的RuntimeExcpetion异常,函数上可以不用声明。

评分

参与人数 1黑马币 +12 收起 理由
张熙韬 + 12

查看全部评分

回复 使用道具 举报
简单点说,抛出Exception异常时,如果不声明的话,编译会失败.但程序还得运行下去,所以必须声明一下,程序才能继续运行.
而抛RuntimeException时,不用声明程序也能继续运行下去,到了运行阶段时,就会抛出异常,让程序停止下来.
两者的目的不同,Exception是为了让程序继续运行,就算抛出异常经过处理也还能继续运行.
                      而RuntimeException是为了让程序停上下来.一旦一个程序出现是的RuntimeException时,那这个异常,通过throws或者try catch也是处理不了的,而是必须修改原代码,才来处理的.因此没必声明处理,因为声明处理也搞不定,还不如让程序一股走底,直到出错,并停止.以便修改.

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马