为了账号安全,请及时绑定邮箱和手机立即绑定

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

init那个是干嘛的也没说

正在回答

4 回答

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

0 回复 有任何疑惑可以回复我~

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

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

望采纳,谢谢

5 回复 有任何疑惑可以回复我~
#1

慕娘3836954

thank you
2017-03-13 回复 有任何疑惑可以回复我~
#2

落叶萧萧online

想到同样的问题,确实是换了异常类型Exception再试就必须throws了
2017-03-28 回复 有任何疑惑可以回复我~
initCase()方法对异常进行包装,向上级处理的方法 ,也就是你在学习异常链用的


0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

qq_阴天子_04410108

但是test1方法中不是也throws了一个DrunkException,然后抛出异常,搞得有点混。。。
2016-12-21 回复 有任何疑惑可以回复我~
#2

WGJ 回复 qq_阴天子_04410108

那是异常链。
2016-12-21 回复 有任何疑惑可以回复我~
#3

落叶萧萧online 回复 WGJ

有点扯吧,上面的的留言只是在说test1方法。。1方法直接就是异常连了?
2017-03-28 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信