草庐IT

Try-Except-Finally

全部标签

java - 是否可以在我进入 finally block 之前检测是否发生异常?

在Java中,是否有一种优雅的方法可以在运行finallyblock之前检测是否发生异常?在处理“close()”语句时,通常需要在finallyblock中处理异常。理想情况下,我们希望维护两个异常并将它们向上传播(因为它们都可能包含有用的信息)。我能想到的唯一方法是在try-catch-finally范围之外有一个变量来保存对抛出异常的引用。然后将“已保存”异常与finallyblock中发生的任何异常一起传播。有没有更优雅的方式来做到这一点?也许API调用会揭示这一点?这是我所说的一些粗略代码:Throwablet=null;try{stream.write(buffer);}c

java - 是否可以在我进入 finally block 之前检测是否发生异常?

在Java中,是否有一种优雅的方法可以在运行finallyblock之前检测是否发生异常?在处理“close()”语句时,通常需要在finallyblock中处理异常。理想情况下,我们希望维护两个异常并将它们向上传播(因为它们都可能包含有用的信息)。我能想到的唯一方法是在try-catch-finally范围之外有一个变量来保存对抛出异常的引用。然后将“已保存”异常与finallyblock中发生的任何异常一起传播。有没有更优雅的方式来做到这一点?也许API调用会揭示这一点?这是我所说的一些粗略代码:Throwablet=null;try{stream.write(buffer);}c

java - 从方法返回,在 "try" block 中还是在 "catch" block 之后?

以下两种方法有区别吗?哪个更好,为什么?Prg1:publicstaticbooleantest()throwsException{try{doSomething();returntrue;}catch(Exceptione){thrownewException("No!");}}Prg2:publicstaticbooleantest()throwsException{try{doSomething();}catch(Exceptione){thrownewException("No!");}returntrue;} 最佳答案 考

java - 从方法返回,在 "try" block 中还是在 "catch" block 之后?

以下两种方法有区别吗?哪个更好,为什么?Prg1:publicstaticbooleantest()throwsException{try{doSomething();returntrue;}catch(Exceptione){thrownewException("No!");}}Prg2:publicstaticbooleantest()throwsException{try{doSomething();}catch(Exceptione){thrownewException("No!");}returntrue;} 最佳答案 考

java - 为什么 emma 没有完全覆盖 finally block ?

我不明白为什么emma没有为“finally”block提供完整的代码覆盖率。我制作了一个简短的示例程序来演示这一点。当我执行程序时它显示:tryfinally所以我不明白为什么finally被标记为红色(未执行)而“finally”“println”被标记为黄色(部分执行)。我错过了什么吗?如何让emma明白finallyblock被覆盖了?谢谢! 最佳答案 在EMMA常见问题解答中有一个条目:Implicitbranchesduetofinallyblocks.触及部分覆盖的finallyblock的主题。也许这有帮助。

java - 为什么 emma 没有完全覆盖 finally block ?

我不明白为什么emma没有为“finally”block提供完整的代码覆盖率。我制作了一个简短的示例程序来演示这一点。当我执行程序时它显示:tryfinally所以我不明白为什么finally被标记为红色(未执行)而“finally”“println”被标记为黄色(部分执行)。我错过了什么吗?如何让emma明白finallyblock被覆盖了?谢谢! 最佳答案 在EMMA常见问题解答中有一个条目:Implicitbranchesduetofinallyblocks.触及部分覆盖的finallyblock的主题。也许这有帮助。

java - finally 里面可以用 try catch 吗?

我正在使用缓冲写入器,我的代码在finallyblock中关闭写入器。我的代码是这样的。...........BufferedWritertheBufferedWriter=null;try{theBufferedWriter=....................}catch(IOExceptionanException){....}finally{try{theBufferedWriter.close();}catch(IOExceptionanException){anException.printStackTrace();}}我必须在finally的清理代码中使用trycat

java - finally 里面可以用 try catch 吗?

我正在使用缓冲写入器,我的代码在finallyblock中关闭写入器。我的代码是这样的。...........BufferedWritertheBufferedWriter=null;try{theBufferedWriter=....................}catch(IOExceptionanException){....}finally{try{theBufferedWriter.close();}catch(IOExceptionanException){anException.printStackTrace();}}我必须在finally的清理代码中使用trycat

java - 将 try catch finally block 放入另一个 finally block 中

try{}catch(){}finally{try{}catch(){}finally{}}上面的代码好不好? 最佳答案 是的,你可以这样做。实际上,在处理要正确关闭的流时,您甚至需要这样做:InputStreamin=/*...*/;try{}catch(...){}finally{try{in.close();}catch(...){}finally{}}我不认为这是一种不好的做法 关于java-将trycatchfinallyblock放入另一个finallyblock中,我们在S

java - 将 try catch finally block 放入另一个 finally block 中

try{}catch(){}finally{try{}catch(){}finally{}}上面的代码好不好? 最佳答案 是的,你可以这样做。实际上,在处理要正确关闭的流时,您甚至需要这样做:InputStreamin=/*...*/;try{}catch(...){}finally{try{in.close();}catch(...){}finally{}}我不认为这是一种不好的做法 关于java-将trycatchfinallyblock放入另一个finallyblock中,我们在S