java 抛出异常后,还会执行后面代码吗?
来源:互联网 发布:骑马与砍杀 知乎 编辑:程序博客网 时间:2024/04/29 20:08
比如:
方法:{
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); }我还是自己测试一下
大漠灬蜃楼 | 浏览 30512 次 举报
我有更好的答案
推荐于2017-09-23 09:14:50最佳答案
return会执行的。
try{}里面包含可能会出错的代码?如果里面出错了,他回交给catch{}处理,catch可能把这个错误给屏蔽掉(就比如说你牙疼不能吃饭,给给力来个止疼的,不影响你做其他的事情了)。。不影响你之后的代码运行。。但是如果你try{}里面有多行代码第一行,第二行,第三行,如果第二行出错了,第三行是不执行的。如果有finally{}这里里面代码是处理后事的。比如说,你try里面有操作工作流的,那么如果出错了fianlly可以用力处理,关闭工作流对象,避免浪费资源。finally{}是必须执行的,不是管是出错了,还是不出错。
其他回答
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中关闭,这样无论有没有出现异常,都会被关闭.
//正常执行的代码
}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中关闭,这样无论有没有出现异常,都会被关闭.
本回答被网友采纳
LMLU23 发布于2014-10-28
举报 评论
62 7
主要看你catch捕捉异常时做了什么操作,如果仅仅捕捉写了日志那后面return还会执行
,如过把异常重新处理又网上抛了那就不执行!另外所有异常捕捉建议加fianlly
必走!
,如过把异常重新处理又网上抛了那就不执行!另外所有异常捕捉建议加fianlly
必走!
zhoujie122 发布于2014-10-28
举报 评论
8 1
比如:
方法:{
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); }我还是自己测试一下
大漠灬蜃楼 | 浏览 30512 次 举报
我有更好的答案
推荐于2017-09-23 09:14:50最佳答案
return会执行的。
try{}里面包含可能会出错的代码?如果里面出错了,他回交给catch{}处理,catch可能把这个错误给屏蔽掉(就比如说你牙疼不能吃饭,给给力来个止疼的,不影响你做其他的事情了)。。不影响你之后的代码运行。。但是如果你try{}里面有多行代码第一行,第二行,第三行,如果第二行出错了,第三行是不执行的。如果有finally{}这里里面代码是处理后事的。比如说,你try里面有操作工作流的,那么如果出错了fianlly可以用力处理,关闭工作流对象,避免浪费资源。finally{}是必须执行的,不是管是出错了,还是不出错。
其他回答
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中关闭,这样无论有没有出现异常,都会被关闭.
//正常执行的代码
}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中关闭,这样无论有没有出现异常,都会被关闭.
本回答被网友采纳
LMLU23 发布于2014-10-28
举报 评论
62 7
主要看你catch捕捉异常时做了什么操作,如果仅仅捕捉写了日志那后面return还会执行
,如过把异常重新处理又网上抛了那就不执行!另外所有异常捕捉建议加fianlly
必走!
,如过把异常重新处理又网上抛了那就不执行!另外所有异常捕捉建议加fianlly
必走!
zhoujie122 发布于2014-10-28
举报 评论
8 1
阅读全文
0 0
- java 抛出异常后,还会执行后面代码吗?
- Java异常处理中try{}catch抛出异常,后面代码还会继续执行么?
- java捕获到异常以后,后面的代码还会执行吗?
- java捕获到异常以后,后面的代码还会执行吗?
- java抛出异常后面的代码是否能执行?
- java抛出异常后代码继续执行的情况
- getRequestDispatcher(path).forward(),,执行完,后面的代码居然还会执行!!!记得加return 啊亲
- getRequestDispatcher(path).forward(),,执行完,后面的代码居然还会执行!!!
- getRequestDispatcher(path).forward(),,执行完,后面的代码还会执行
- Android finish方法后代码还会执行?
- forward()和sendRedirect()执行后,后面的代码是否还继续执行?
- java 网络 socket TCP / UDP / catch 语句块捕捉到异常后,继续执行语句块后面的代码
- 自定义异常的用法,抛出异常后,代码仍然继续执行。
- C++程序抛出异常后执行顺序
- 关闭游览器后, php程序还会执行吗?
- mvc中用response.redirect跳转后,后续代码还会执行的问题
- java 方法超过执行时间后抛出异常
- C#中try catch捕捉到问题之后 后面的代码还继续执行吗
- IDEA清空项目缓存
- 开发笔记
- android高级自定义控件(超炫加载过渡特效)
- Disruptor原理剖析
- Windows 7下Git SSH 创建Key的步骤
- java 抛出异常后,还会执行后面代码吗?
- 【记录】 Android 双卡手机获取两个IMEI等
- H5下拉框的自定义
- 一天造出10亿个淘宝首页,阿里工程师如何实现?
- 使用Vue构建Ionic混合APP系列教程(二):导航
- maven打jar包
- 使用hive重定向导出的数据文件中包含WARN日志记录问题
- ModelAndView详解
- 自定义事件--JS自定义一个事件(一)