草庐IT

Try-catch

全部标签

java - 在什么情况下 finally {} block 不会执行?

在Javatry{}...catch{}...finally{}block中,finally{}中的代码通常被认为是“保证”无论try/catch中发生什么,都运行。但是,我知道它至少不会执行的两种情况:如果System.exit(0)被调用;或者,如果异常一直抛出到JVM并且发生默认行为(即,printStackTrace()并退出)是否有任何其他程序行为会阻止finally{}block中的代码执行?代码会在什么特定条件下执行?编辑:正如NullUserException所指出的,第二种情况实际上是不正确的。我认为这是因为标准错误中的文本在标准输出之后打印,防止在不向上滚动的情况下

java - java中的try/catch vs null检查

有时我面临我必须写一段这样的代码(通常它有更多的嵌套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){}}第二种形式是

java - java中的try/catch vs null检查

有时我面临我必须写一段这样的代码(通常它有更多的嵌套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){}}第二种形式是

Java:catch 的含义(final SomeException e)?

final在下面的Java表达式中做了什么?catch(finalSomeExceptionTypee) 最佳答案 基本意思是:将“SomeExceptionType”捕获到变量“e”中,并promise在处理异常期间我们不会为“e”分配不同的异常。大多数情况下这是矫枉过正,就好像我正在将异常捕获到临时变量名中(e仅对异常处理block有效),我不必如此严格地监管自己,以免自己不相信自己分配同一变量名的不同(可能已创建)异常。也就是说,也许这个block是由一群志同道合的人大量维护的,一个人只是想非常确定e是最初捕获的异常。----

Java:catch 的含义(final SomeException e)?

final在下面的Java表达式中做了什么?catch(finalSomeExceptionTypee) 最佳答案 基本意思是:将“SomeExceptionType”捕获到变量“e”中,并promise在处理异常期间我们不会为“e”分配不同的异常。大多数情况下这是矫枉过正,就好像我正在将异常捕获到临时变量名中(e仅对异常处理block有效),我不必如此严格地监管自己,以免自己不相信自己分配同一变量名的不同(可能已创建)异常。也就是说,也许这个block是由一群志同道合的人大量维护的,一个人只是想非常确定e是最初捕获的异常。----

java - 错误 "A JNI error has occurred. Please check your installation and try again in Eclipse x86 Windows 8.1"

考虑:publicclassLoginCumRegimplementsActionListener,KeyListener{privateJFrameform;privateJTextFieldtxtunm;privateJTextFieldtxtnm;privateJTextFieldtxteml;privateJButtoncmdcreate;privateJPasswordFieldtxtpass;privateJPasswordFieldtxtpassreg;privateJButtoncmdok;privateJLabellblunm;privateJLabellblpass

java - 错误 "A JNI error has occurred. Please check your installation and try again in Eclipse x86 Windows 8.1"

考虑:publicclassLoginCumRegimplementsActionListener,KeyListener{privateJFrameform;privateJTextFieldtxtunm;privateJTextFieldtxtnm;privateJTextFieldtxteml;privateJButtoncmdcreate;privateJPasswordFieldtxtpass;privateJPasswordFieldtxtpassreg;privateJButtoncmdok;privateJLabellblunm;privateJLabellblpass

java - 如何不在 catch block 中重复代码?

我很难不在我目前正在开发的Java程序中重复自己。比方说,我需要声明很多方法,这些方法基本上是按以下方式构造的:publicSomeEntitydoSomething(StringsomeAttribute,StringanotherAttribute){EntityManagerem=this.createEntityManager();EntityTransactiontx=null;try{/**...independentlogic...*/tx=em.getTransaction();}catch(RuntimeExceptione){if(tx!=null&&tx.isAc

java - 如何不在 catch block 中重复代码?

我很难不在我目前正在开发的Java程序中重复自己。比方说,我需要声明很多方法,这些方法基本上是按以下方式构造的:publicSomeEntitydoSomething(StringsomeAttribute,StringanotherAttribute){EntityManagerem=this.createEntityManager();EntityTransactiontx=null;try{/**...independentlogic...*/tx=em.getTransaction();}catch(RuntimeExceptione){if(tx!=null&&tx.isAc

c# - 如果 catch 和 finally block 都抛出异常会发生什么?

如果catch和finallyblock都抛出异常会发生什么? 最佳答案 当finallyblock抛出异常时,它将有效地隐藏catchblock抛出的异常,并将成为最终抛出的异常。因此,重要的是在捕获时记录异常,或者确保finallyblock本身不会抛出异常,否则您可能会抛出被扼杀且从未见过的异常​​。 关于c#-如果catch和finallyblock都抛出异常会发生什么?,我们在StackOverflow上找到一个类似的问题: https://stac