java 抛出异常后,还会执行后面代码吗?

比如:方法:{try{//可能出错语句块}catch{//错误}return。。}如果执行了catch语句块,那么这个return还会执行吗?谁能讲解一下,Java错误异... 比如:
方法:{
try{
//可能出错语句块
}catch{
//错误
}
return 。。
}
如果执行了catch语句块,
那么这个return还会执行吗?
谁能讲解一下,Java错误异常的机制。
下面是我写的测试,但catch(这里写什么)
public static String fun(){
String str="XXXX";

int a=0;
int b=10;
int c=0;
try{
c=b/a;
}catch(){

}

return str;
}

public static void main(String[] args) {
String str=fun();

System.out.println(str);
}
我还是自己测试一下
展开
 我来答
张三猫子
推荐于2017-09-23 · TA获得超过689个赞
知道小有建树答主
回答量:247
采纳率:100%
帮助的人:126万
展开全部
return会执行的。
try{}里面包含可能会出错的代码?如果里面出错了,他回交给catch{}处理,catch可能把这个错误给屏蔽掉(就比如说你牙疼不能吃饭,给给力来个止疼的,不影响你做其他的事情了)。。不影响你之后的代码运行。。但是如果你try{}里面有多行代码第一行,第二行,第三行,如果第二行出错了,第三行是不执行的。如果有finally{}这里里面代码是处理后事的。比如说,你try里面有操作工作流的,那么如果出错了fianlly可以用力处理,关闭工作流对象,避免浪费资源。finally{}是必须执行的,不是管是出错了,还是不出错。
LMLU23
2014-10-28 · TA获得超过901个赞
知道小有建树答主
回答量:373
采纳率:0%
帮助的人:361万
展开全部
try{
//正常执行的代码
}catch (Exception e){
//出错后执行的代码
}finally{
//无论正常执行还是出错,之后都会执行的代码
}
//跟上面try catch无关的代码

正常执行的代码如果出现异常,就不会执行出现异常语句后面的所有正常代码.
异常可能会被捕获掉,比如上面catch声明的是捕获Exception,那么所有Exception包括子类都会被捕获,但如Error或者是Throwable但又不是Exception(Exception继承Throwable)就不会被捕获.
如果异常被捕获,就会执行catch里面的代码.如果异常没有被捕获,就会往外抛出,相当于这整个方法出现了异常.
finally中的代码只要执行进了try catch永远都会被执行.执行完finally中的代码,如果异常被捕获就会执行外面跟这个try catch无关的代码.否则就会继续往外抛出异常.
return无论在哪里,只要执行到就会返回,但唯一一点不同的是如果return在try或者catch中,即使返回了,最终finally中的代码都会被执行.这种情况最常用的是打开了某些资源后必须关闭,比如打开了一个OutputStream,那就应该在finally中关闭,这样无论有没有出现异常,都会被关闭.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
三瓣桔
2014-10-28 · TA获得超过224个赞
知道小有建树答主
回答量:224
采纳率:0%
帮助的人:87.1万
展开全部
主要看你catch捕捉异常时做了什么操作,如果仅仅捕捉写了日志那后面return还会执行
,如过把异常重新处理又网上抛了那就不执行!另外所有异常捕捉建议加fianlly
必走!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhoudha
生活家

2014-10-28 · 知世故而不世故地生活
知道大有可为答主
回答量:2.4万
采纳率:91%
帮助的人:64.5万
展开全部
fianlly里的代码会执行。
你在catch的后面加finally试一试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式