问题描述
try{……return;}catch(Exceptione){e.printStackTrce;}finally{……}上述程序块中,在try中没有发现异常的话,finally块中的语句是否会执行?
解决方案
解决方案二:
你写个小玩意测试一下不就知道了
解决方案三:
会执行!当没有发现异常的话finally里的语句会在return之前执行。
解决方案四:
会,除非:publicclassTest{publicstaticvoidmain(String[]args)throwsException{foo();}staticintfoo()throwsException{try{System.out.println("1");System.exit(1);System.out.println("2");return2;}finally{System.out.println("3");}}}
解决方案五:
会执行,try中遇到return关键字时会先跳到finally块中执行,执行完了就回来执行return语句了你也可以自己设一个段点看看,映像会深些
解决方案六:
不管有没有发现异常,finally语句块中的语句总会执行的建议你写一个测试类体会体会
解决方案七:
引用5楼yang677888的回复:
不管有没有发现异常,finally语句块中的语句总会执行的建议你写一个测试类体会体会
我那个System.exit()例子是例外
解决方案八:
除强制退出外System.exit()都执行
解决方案九:
finally里边的语句,会在return之前执行;所以finally一般用来做一些清尾工作,如:释放连接,等等.除非你在catch里关了JVM.
解决方案十:
对,会执行,在return前执行。
解决方案十一:
呵呵,前几天的面试题。程序会先执行finally中的代码然后执行return
解决方案十二:
会
解决方案十三:
答案都统一啊,我来灌水!
解决方案十四:
楼主自己把这段小程序完善下,加个main方法,加几个控制台打印,此贴答案立即就有了。这个问题的答案当然是:finally会被执行,无论正常情况下还是出异常情况下,且在return前执行。
解决方案十五:
一定会执行,try。。。。catch。。。。。finally,finally模块里的东西是一定会执行的。
解决方案:
一定会执行!有或没有异常都会执行当没有发现异常的话finally里的语句会在return之前执行。
解决方案:
如果try{}模块中的语句没有错误,catch{}模块里的就不会执行了,但finally{}模块里的语句无论有没有异常都执行,try{}里语句有问题return就肯定不会执行了被
解决方案:
引用5楼yang677888的回复:
不管有没有发现异常,finally语句块中的语句总会执行的建议你写一个测试类体会体会
是这样的,不过发现在发现异常时候,异常句子的后面的语句不会执行的例如try{inta=10;intb=0;a=a/b;System.out.println("能执行后面的语句吗?")}catch(Exceptione){....}finally{System.out.println("这一句是会执行的哦!");}运行程序后,你会发现System.out.println("能执行后面的语句吗?")没有打印出来System.out.println("这一句是会执行的哦!");这一句打印出来了
解决方案:
借3楼的代码:publicclassTest{publicstaticvoidmain(String[]args)throwsException{foo();}staticintfoo()throwsException{try{System.out.println("1");//你在这里加入一段异常代码,能帮你更好的理解System.out.println(5/0);//被零除System.exit(1);//System.exit(0);//不管是否是正常退出或异常退出System.out.println("2");return2;}finally{System.out.println("3");}}}
结果:13Exceptioninthread"main"java.lang.ArithmeticException:/byzero
解决方案:
7楼凶器正解!
解决方案:
在return前执行。
解决方案:
debug一下比什么都清楚,或是多打印几个system.out就知道了这个问题以前scjp考过
解决方案:
引用19楼woodlikewater的回复:
7楼凶器正解!
人间凶器会执行finally的
解决方案:
引用6楼shine333的回复:
引用5楼yang677888的回复:不管有没有发现异常,finally语句块中的语句总会执行的建议你写一个测试类体会体会我那个System.exit()例子是例外
那个我邪恶是一下!那个而回先退出程序吗?
解决方案:
解决方案:
前几天,我面试的那家公司的技术人员提的技术人员提出来的!我运气不错,猜对了!以前没遇到!有些问题还是得好好的思考一下!
解决方案:
当然执行了,如果Try和finally里都有return的话大家猜猜return的是哪一个?:)
解决方案:
会执行
解决方案:
肯定会,必须会,否则就不是finally,finally==终结者!
解决方案:
会执行
解决方案:
finally块里面的代码是一定会执行的,在try代码块返回之后
解决方案:
会执行,无论怎么操作,那是最终执行的语句。
解决方案:
引用5楼yang677888的回复:
不管有没有发现异常,finally语句块中的语句总会执行的建议你写一个测试类体会体会
嗯,同意。
解决方案:
同上
解决方案:
会在return之前执行
解决方案:
会执行的,不信上面有列子,自己执行就OK了
解决方案:
当然会执行啦
解决方案:
finally是必须执行的..return执行后方法就跳出了.你看是哪个先执行,哪个后执行?
解决方案:
会执行!发生异常与否,finally里的语句都会在return之前执行。
解决方案:
会执行!发生异常与否,finally里的语句都会在return之前执行。呵呵灌水哦
解决方案:
灌水,基本问题,建议多试验。
解决方案:
一定会执行的
解决方案:
引用6楼shine333的回复:
引用5楼yang677888的回复:不管有没有发现异常,finally语句块中的语句总会执行的建议你写一个测试类体会体会我那个System.exit()例子是例外
我怎么感觉到,你一运行try就关机似得。。。。那它永远不执行finally.O(∩_∩)O哈哈~
解决方案:
finally会执行,并且是在return之前执行!你可以写个小例子,设上断点试试看!
解决方案:
会执行的。
解决方案:
这种问题自己试试就可以了,印象会比较深啊~~~
解决方案:
讲解得好全面了。
解决方案:
即使有return也会执行
解决方案:
我楼上狮子跑快吧?那你说是那狮子快还是飞机飞的快。
解决方案:
自己多加几个system.out.print()看看
解决方案:
除强制退出外System.exit()都执行当没有发现异常的话finally里的语句会在return之前执行