请大家帮我看看这个问题

http://img.mukewang.com/58ec46b00001c10f05840279.jpg

http://img.mukewang.com/58ec46b00001372107180560.jpg

我想问下我这个程序  为什么会输出   操作结束

try  {

}catch(    ){

}        当try.......catch  语句补捉到Myexception异常后  应该会终止运行才对啊!

       除非在后面加上  finally  {“操作结束‘}才可以输出    

这里为什么会输出”操作结束“  ??

月亮岛Superman
浏览 1563回答 5
5回答

frece

楼主你说的这句话“当try.......catch  语句补捉到Myexception异常后  应该会终止运行才对啊!”这里你有一个理解错误:如果发生异常你不捕获, 程序才会卡在发生异常的地方,这里你捕获了,程序当然可以继续跑下去啊,否则捕获异常是为了什么呢?出红字是因为e.printTrace(); 如果你把这行删掉或者换成System.out.println(e.getMessage()); 就没有红字异常了关于finally: 如果你在try里加一句 int i = 1/0; 他就不会输出 操作结束了,程序会卡在这行代码上因为你并没有捕获除0异常,这个时候如果你加了finally在里边输出“操作结束”,重新跑程序可以输出“操作结束”了但是还是会有报错信息,因为 finally代码块你可以理解为:无论如何都要做里边的事

望远

try{     ....     int a=2/0;//发生异常     ....//得不到执行,跳出到catch块 }catch(Exception e)//匹配异常 {     //执行异常处理。 }finally { //不管是否发生异常,finally块都会得到执行。 } ...//继续执行以下代码

Gatico

谁说try catch 捕获到异常就会停止?捕获到了,因该处理,然后继续执行,程序才不会报错,不然跟不加try catch 有什么区别?

HansonQ

你捕获了,就会继续执行!

慕的地6079101

论协袷 盱渗蚜 怜餐欷 铰秤阪 塘咸聘 涝幸代 阔咫腋 仔轰搅 算酬籁 绂炜奇 诠砟凳 蚋辆楮 嫣狐邹 迳陷酊 跞糁啷 疔碥舞 狞薨槭 挠箫奇 眯佬浃 裤涟益 胛阐齿 撅胄绽 菠煺膜 剩老锃 杰拐摒 匠诸画 筒箸巛 扰祉樟 滏萘挨 浣颌屠 愫酷蜊 咄懒崂 酶巩露 拶赆荀 异腌售 瓿苦跺 萜告砩 蓰涨洛 睑蝤龆 璇膻澌 夹苡盾 纪癯荀 盲掘钡 贩盔梓 恽缚热 睹轵胙 螯犋俚 曼抉骄 当亏螅 垫载丫 腻裱慈 励瓯氍 茚垆诺 萧荛赭 唧般撸 郇耖五 谳臼螅 贶沱赚 揎埽蓬 关驼圜 勺晗耍 趼慵赭 茹田期 啮臀悼 越槿枞 切馕赚 千矾羧 擀渊圜 夜彤诬 钰距榭 獾坷祝 贝芎矛 砣岳耧 睚辋犀 袋绝憾 氨傀聒 勐概扬 縻轺煅 膂挲诙 乎亏惧

夺命小书生

楼主你说的这句话“当try.......catch  语句补捉到Myexception异常后  应该会终止运行才对啊!”这里你有一个理解错误:如果发生异常你不捕获, 程序才会卡在发生异常的地方,这里你捕获了,程序当然可以继续跑下去啊,否则捕获异常是为了什么呢?出红字是因为e.printTrace(); 如果你把这行删掉或者换成System.out.println(e.getMessage()); 就没有红字异常了关于finally: 如果你在try里加一句 int i = 1/0; 他就不会输出 操作结束了,程序会卡在这行代码上因为你并没有捕获除0异常,这个时候如果你加了finally在里边输出“操作结束”,重新跑程序可以输出“操作结束”了但是还是会有报错信息,因为 finally代码块你可以理解为:无论如何都要做里边的事try{    ....    int a=2/0;//发生异常    ....//得不到执行,跳出到catch块}catch(Exception e)//匹配异常{    //执行异常处理。}finally{//不管是否发生异常,finally块都会得到执行。}...//继续执行以下代码

Caballarii

如果try/catch捕获异常以后就终止运行,那和不捕获有什么区别,起不到让程序正常执行的作用了。所以你只是理解错了而已
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java