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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马林贺 中级黑马   /  2012-5-25 11:40  /  2855 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1.自定义异常分别什么时候继承 Exception  或者 RuntimeException
  
  2. 自定义异常继承Error 后与继承 Exception 有什么不同。

  3. 关于异常什么时候try,什么时候抛出?

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

7 个回复

倒序浏览
  求指导。。。。。
回复 使用道具 举报
       Error表示非常严重的、不可预期的异常情况,通常应用程序无需捕获并处理。
     Exception通常是一种设计或实现的异常,它是编译器可以“感知”的异常,所以程序被要求必须捕获并处理这些异常。
     RuntimeException与Error一样,也是无需捕获的,且就算在方法上throws了RuntimeException,调用该方法的语句也无需catch这些异常。
     Error和Exception都继承自Throwable类。所有的Checked Exception 均从java.lang.Exception 继承而来,而Runtime Exception 则继承java.lang.RuntimeException 或java.lang.Error (实际上java.lang.RuntimeException 的上一层也是java.lang.Exception)。

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 麦田里的守望者 于 2012-5-25 12:15 编辑

异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception,具体的RuntimeException继承RuntimeException。Error(错误)表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题,比如,内存资源不足等,对于这种错误,程序基本无能为力,除了退出运行外别无选择。所以你的程序会出现这样的问题就继承error, exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。这就是继承error和exception的不同。你第三个问题就是能异常解决就尽量try,不能解决就抛。程序上一般也就是这样的也没有特定的说法。另外你的第一个问题就是Exception 就是根异常,RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。 可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。 仅仅就这些区别,一般程序上为了更好区分继承runtimeException的要多些

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
1.自定义异常分别什么时候继承 Exception  或者 RuntimeException
Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。
RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。
2. 自定义异常继承Error 后与继承 Exception 有什么不同。
Error 是 Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题。
3. 关于异常什么时候try,什么时候抛出?
try捕获的是Exception,也就是说代码有用到抛了Exception的方法时,需要try。
什么时候抛,不想自己处理需要捕获的异常就抛掉

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
1.自定义异常分别什么时候继承 Exception  或者 RuntimeException
RuntimeException 是属于;表示一类 未知的不确定的只有在运行时才会出现的异常。
而非RuntimeException 是属于;大概指一类可以预知的,当发生异常后知道如何处理的异常,所以需要捕获。


  2. 自定义异常继承Error 后与继承 Exception 有什么不同。
二者的不同之处:
Exception:

1.可以是可被控制(checked) 或不可控制的(unchecked)。
2.表示一个由程序员导致的错误。
3.应该在应用程序级被处理。
Error:

1.总是不可控制的(unchecked)。
2.经常用来用于表示系统错误或低层资源的错误。
3.用于指示合理的应用程序不应该试图捕获的严重问题

  3. 关于异常什么时候try,什么时候抛出?

可以内部解决的就可以try或者Thorws,不可以自己解决的就需要Throws了
RuntimeException是不需要throw的

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
  貌似懂了,我在重新看一下异常的视频吧,谢谢大家了。
回复 使用道具 举报
楼主这贴太赞了。。一堆人从中拿分啊。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马