我想在finallyblock中关闭我的流,但它会抛出一个IOException所以我似乎必须在我的finally中嵌套另一个tryblockblock以关闭流。这是正确的方法吗?好像有点笨重。代码如下:publicvoidread(){try{r=newBufferedReader(newInputStreamReader(address.openStream()));StringinLine;while((inLine=r.readLine())!=null){System.out.println(inLine);}}catch(IOExceptionreadException){
我想在finallyblock中关闭我的流,但它会抛出一个IOException所以我似乎必须在我的finally中嵌套另一个tryblockblock以关闭流。这是正确的方法吗?好像有点笨重。代码如下:publicvoidread(){try{r=newBufferedReader(newInputStreamReader(address.openStream()));StringinLine;while((inLine=r.readLine())!=null){System.out.println(inLine);}}catch(IOExceptionreadException){
在Javatry{}...catch{}...finally{}block中,finally{}中的代码通常被认为是“保证”无论try/catch中发生什么,都运行。但是,我知道它至少不会执行的两种情况:如果System.exit(0)被调用;或者,如果异常一直抛出到JVM并且发生默认行为(即,printStackTrace()并退出)是否有任何其他程序行为会阻止finally{}block中的代码执行?代码会在什么特定条件下执行?编辑:正如NullUserException所指出的,第二种情况实际上是不正确的。我认为这是因为标准错误中的文本在标准输出之后打印,防止在不向上滚动的情况下
在Javatry{}...catch{}...finally{}block中,finally{}中的代码通常被认为是“保证”无论try/catch中发生什么,都运行。但是,我知道它至少不会执行的两种情况:如果System.exit(0)被调用;或者,如果异常一直抛出到JVM并且发生默认行为(即,printStackTrace()并退出)是否有任何其他程序行为会阻止finally{}block中的代码执行?代码会在什么特定条件下执行?编辑:正如NullUserException所指出的,第二种情况实际上是不正确的。我认为这是因为标准错误中的文本在标准输出之后打印,防止在不向上滚动的情况下
在Java7的try-with-resources中,我不知道finallyblock和自动关闭发生的顺序。顺序是什么?BaseResourceb=newBaseResource();//notauto-closeable;mustbestop'edtry(AdvancedResourcea=newAdvancedResource(b)){}finally{b.stop();//willthishappenbeforeoraftera.close()?} 最佳答案 资源在catch或finally阻塞之前关闭。看到这个tutoria
在Java7的try-with-resources中,我不知道finallyblock和自动关闭发生的顺序。顺序是什么?BaseResourceb=newBaseResource();//notauto-closeable;mustbestop'edtry(AdvancedResourcea=newAdvancedResource(b)){}finally{b.stop();//willthishappenbeforeoraftera.close()?} 最佳答案 资源在catch或finally阻塞之前关闭。看到这个tutoria
有时我面临我必须写一段这样的代码(通常它有更多的嵌套if和更复杂的结构,但示例就足够了)publicvoidprintIt(Object1a){if(a!=null){SubObjectb=a.getB();if(b!=null){SubObject2c=b.getC();if(c!=null){c.print();}}}}当我不需要知道什么失败了,如果某些东西是null什么都不做,那么一种方法可能是publicvoidprintIt(Object1a){try{a.getB().getC().print();}catch(NullPointerExceptione){}}第二种形式是
有时我面临我必须写一段这样的代码(通常它有更多的嵌套if和更复杂的结构,但示例就足够了)publicvoidprintIt(Object1a){if(a!=null){SubObjectb=a.getB();if(b!=null){SubObject2c=b.getC();if(c!=null){c.print();}}}}当我不需要知道什么失败了,如果某些东西是null什么都不做,那么一种方法可能是publicvoidprintIt(Object1a){try{a.getB().getC().print();}catch(NullPointerExceptione){}}第二种形式是
这个问题在这里已经有了答案:Isthere"BreakonException"inIntelliJ?(6个回答)关闭7年前。我想在调试器中运行我的测试套件并中断任何意外异常,但是Java类加载器在正常操作期间会抛出大量ClassNotFoundExceptions。因此,如果我可以创建一个忽略ClassNotFoundExceptions并在其他所有内容上停止的异常断点,那就太好了。 最佳答案 这个答案与Mindas的答案几乎相同,但细节足以让我第一次忽略他的建议,并打扰Intellij支持男孩/女孩(感谢Serge和Eugene)
这个问题在这里已经有了答案:Isthere"BreakonException"inIntelliJ?(6个回答)关闭7年前。我想在调试器中运行我的测试套件并中断任何意外异常,但是Java类加载器在正常操作期间会抛出大量ClassNotFoundExceptions。因此,如果我可以创建一个忽略ClassNotFoundExceptions并在其他所有内容上停止的异常断点,那就太好了。 最佳答案 这个答案与Mindas的答案几乎相同,但细节足以让我第一次忽略他的建议,并打扰Intellij支持男孩/女孩(感谢Serge和Eugene)