test2中throw了一个RunTimeException异常,为什么方法名后面没有throws声明

来源:1-7 Java 中的异常链

lingxiaomo

2016-12-19 09:37

init那个是干嘛的也没说

写回答 关注

4回答

  • 原木兮
    2017-03-04 00:01:23

    异常应该是要么用throws声明,要么用catch/throw语句包围,两者任选其一。test1中用的是throws,test2中用的是catch/throw。

  • Shrinlee
    2016-12-19 10:49:48

    1.  Exception 包括 非检查性异常 RuntimeException 和检查性异常 如: IOException之类,
        两种异常的区别
                非检查性异常 及子类,程序中可以不处理,但是运行时会报异常.
                检查性异常及子类,程序中必须处理,其它一样.
        所以,RunTimeException异常是不需要throws的,程序中无需处理

    2.  initCause();定义原始异常,这里也就是说该运行时异常的原始异常:喝大了异常DrunkException

    望采纳,谢谢

    落叶萧萧on...

    想到同样的问题,确实是换了异常类型Exception再试就必须throws了

    2017-03-28 14:49:01

    共 2 条回复 >

  • 唯在等你
    2016-12-19 10:10:52
    initCase()方法对异常进行包装,向上级处理的方法 ,也就是你在学习异常链用的


  • WGJ
    2016-12-19 10:05:25

    异常要么声明,要么抛出异常,不能同时声明和抛出异常。

    落叶萧萧on... 回复WGJ

    有点扯吧,上面的的留言只是在说test1方法。。1方法直接就是异常连了?

    2017-03-28 14:45:22

    共 3 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题