java 程序无论是否有异常都有返回值?代码怎么处理?
1.其他2.每个catch中和方法最后都有returneStringtrnCode="aaa";try{}catch(DocumentExceptione){e.prin...
1.其他
2.每个catch中和方法最后都有returne
String trnCode = "aaa";
try {
} catch (DocumentException e) {
e.printStackTrace();
return trnCode;
} catch (Exception e) {
e.printStackTrace();
return trnCode;
}finally{
//do something
}
return trnCode;
3.finally 中的返回值
String trnCode = "aaa";
try {
} catch (DocumentException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}finally{
return trnCode;
} 展开
2.每个catch中和方法最后都有returne
String trnCode = "aaa";
try {
} catch (DocumentException e) {
e.printStackTrace();
return trnCode;
} catch (Exception e) {
e.printStackTrace();
return trnCode;
}finally{
//do something
}
return trnCode;
3.finally 中的返回值
String trnCode = "aaa";
try {
} catch (DocumentException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}finally{
return trnCode;
} 展开
7个回答
展开全部
如果你需要返回异常的返回值,在catch中添加return即可,如果你需要返回正常的业务处理结果,在try中返回即可,因为代码在执行完finally后,如果try中有return,流程会进入到try中进行return,同样catch也是一样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
finally里面的代码 是一定会被执行的,无论是否都有异常被catch住,如果你需要返回一个值得话可以放在finally里面
追问
因为 return在finally 要报警告,(有黄线看着很不舒服;在方法前上@SuppressWarnings("finally") 感觉也不是很好),都不建议 把returne 放在finally中,还有其他什么办法让该方法必须有返回值? 因为把return 放在方法最后,程序抛出异常,就没有返回值了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有看懂你想表达什么,finally里面的是必然被执行的,存在finally的情况下,如果finally里面有return,那么try catch里面的各种return应该是不会执行的,只会执行finally里面的return
追问
因为 return在finally 要报警告,(有黄线看着很不舒服;在方法前上@SuppressWarnings("finally") 感觉也不是很好),都不建议 把returne 放在finally中,还有其他什么办法让该方法必须有返回值? 因为把return 放在方法最后,程序抛出异常,就没有返回值了。
追答
把return放在最后是正确的做法,你说没有return是因为程序无法继续,而不是因为程序抛出异常
比如说:执行
String s = "a";
try {
int i = Integer.valueOf(s).intValue();
} catch (NumberFormatException e) {
e.printStackTrace();
} finally {
s = s + s;
}
return s;
这段代码,尽管会有异常抛出,但不影响return,所以程序会继续。
如果程序无法继续,那你应该根据你的实际情况,找到为什么程序无法执行下去,然后对它做出处理,使得程序能够正常继续执行return。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
try{}catch(){}finnaly{}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询