问答详情
源自:1-7 Java 中的异常链

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

init那个是干嘛的也没说

提问者:lingxiaomo 2016-12-19 09:37

个回答

  • 原木兮
    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

    望采纳,谢谢

  • 唯在等你
    2016-12-19 10:10:52

    initCase()方法对异常进行包装,向上级处理的方法 ,也就是你在学习异常链用的


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

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