黑马程序员技术交流社区

标题: 自定义异常的问题!高人举例指导下。 [打印本页]

作者: 马林贺    时间: 2012-5-25 11:40
标题: 自定义异常的问题!高人举例指导下。
  1.自定义异常分别什么时候继承 Exception  或者 RuntimeException
  
  2. 自定义异常继承Error 后与继承 Exception 有什么不同。

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

作者: 马林贺    时间: 2012-5-25 12:00
  求指导。。。。。
作者: 韩国军    时间: 2012-5-25 12:08
       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)。


作者: 黑马-唐磊    时间: 2012-5-25 12:13
本帖最后由 麦田里的守望者 于 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的要多些

作者: niceBoy    时间: 2012-5-25 12:44
1.自定义异常分别什么时候继承 Exception  或者 RuntimeException
Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。
RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。
2. 自定义异常继承Error 后与继承 Exception 有什么不同。
Error 是 Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题。
3. 关于异常什么时候try,什么时候抛出?
try捕获的是Exception,也就是说代码有用到抛了Exception的方法时,需要try。
什么时候抛,不想自己处理需要捕获的异常就抛掉
作者: Gao23616    时间: 2012-5-25 13:05
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的
作者: 马林贺    时间: 2012-5-25 13:45
  貌似懂了,我在重新看一下异常的视频吧,谢谢大家了。
作者: 闾丘日月    时间: 2012-5-25 16:22
楼主这贴太赞了。。一堆人从中拿分啊。




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