java捕获到异常后,异常后的语句不会被执行

其中一段:if(a>10)thrownewMyException(a);System.out.println("这是正常退出");请问如果给出的a>10,抛出了异常后,是... 其中一段:
if(a>10)
throw new MyException(a);
System.out.println("这是正常退出");
请问如果给出的a>10,抛出了异常后,是不是后面这句System.out.println("这是正常退出");就不会执行了呢?
展开
 我来答
198901245631
推荐于2017-09-11 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1748万
展开全部

如果异常中没有finally,那么直接抛出异常,因为抛出异常后实际上就会有“return”结束后面代码的执行。

如果异常中有finally,那么finally里面的内容是可以被继续执行的,执行完之后才会返回。

但最终结果是try大括号后面的内容肯定不会被执行。

举例:

public class Test {


public static void main(String args[]) {

OutputStream os = null;

try {

os = new FileOutputStream(new File(""));

} catch (IOException e) {

System.out.println("被执行1");

} catch (Exception e) {

System.out.println("被执行2");

} finally {// 此处不管是否有异常,都会被执行

System.out.println("被执行3");

if (os != null) {

try {

os.close();

} catch (Exception e) {

}

}

}

}

}

Bwxwle
推荐于2017-09-24 · TA获得超过721个赞
知道小有建树答主
回答量:332
采纳率:0%
帮助的人:315万
展开全部
抛出异常后程序执行会终止,然后runtime会从call stack里寻找异常处理程序,进入异常处理的流程,所以之后的正常代码是执行不到的。
参考 http://docs.oracle.com/javase/tutorial/essential/exceptions/definition.html
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
木天600
2014-10-29
知道答主
回答量:24
采纳率:0%
帮助的人:7.5万
展开全部
问题有歧义你好 需要你的全部代码,如果你想让System.out.println("这是正常退出");执行的话如下

if(a>10){
System.out.println("这是正常退出");
throw new MyException(a);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-10-29
展开全部
  异常后面的任何语句都执行不到,程序只要有异常就会直接终止运行,后面的所有代码都不会执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
再接再厉14
2014-10-29
知道答主
回答量:39
采纳率:100%
帮助的人:11.2万
展开全部
异常发生,要不被trycatch捕获,要不就就立即throw出去,后面的不会执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式