throws Exception 小疑点
throws Exception 小问题
明白了,非常感谢
public int addUser(User user) throws Exception {
try {
userDao.save(user);
return user.getId();
} catch (RuntimeException e) {
e.printStackTrace();
throw new Exception("新增用户异常"); //这个地方,如果注释掉这句话 ,要return 0;
}
}
throw new Exception("新增用户异常"); //这个地方,如果注释掉这句话 ,要return 0;
加上这句话就不用写返回值了,怎么回事?? 有高手给解答一下
1 楼
boyuliu
2011-06-23
你注意看你的代码return的地方,你在try里面也return了,一般一个方法里面只有在最后一个地方才能return,你这里就像if...else... 一样,你if里面return了,else里面也必须return,如果你if...else... 里面没return 就在最外面return就行了。
不知道你懂了没?你这里只要把try里面的return写到try...catch块外面就行了
不知道你懂了没?你这里只要把try里面的return写到try...catch块外面就行了
2 楼
tomfish88
2011-06-24
把try里面的return写到try...catch块外面是对的我知道
现在他没在外面,上面的例子是没有异常的,按常理我们应该在try...catch块外面return
,现在没有,而是加了一句 throw new Exception("新增用户异常"); 这样就不用在外面return了,这是什么道理? 我知道这样做的原因是mvc中,避免c中的异常在v中显示,但语法上,这样做为啥没异常呢
现在他没在外面,上面的例子是没有异常的,按常理我们应该在try...catch块外面return
,现在没有,而是加了一句 throw new Exception("新增用户异常"); 这样就不用在外面return了,这是什么道理? 我知道这样做的原因是mvc中,避免c中的异常在v中显示,但语法上,这样做为啥没异常呢
3 楼
zhanghh321
2011-07-25
方法要有返回值啊 要么返回要么抛出异常啊
一旦try里面出现异常,方法就要跳到catch里面了,因此catch里面要么返回要么抛出异常
一旦try里面出现异常,方法就要跳到catch里面了,因此catch里面要么返回要么抛出异常
4 楼
tomfish88
2011-07-25
zhanghh321 写道
方法要有返回值啊 要么返回要么抛出异常啊
一旦try里面出现异常,方法就要跳到catch里面了,因此catch里面要么返回要么抛出异常
一旦try里面出现异常,方法就要跳到catch里面了,因此catch里面要么返回要么抛出异常
明白了,非常感谢