Tag: uncaught exception

是否吞噬了UncaughtExceptionHandler中抛出的错误?

Thread.UncaughtExceptionHandler声明当处理未捕获的exception的方法本身抛出exception时,该exception将被忽略: void uncaughtException (Thread t,Throwable e): 当给定线程由于给定的未捕获exception而终止时调用的方法。 Java虚拟机将忽略此方法抛出的任何exception。 但是当我测试它时,JVM没有忽略未捕获的exception处理程序处理的exception: public static void main(final String args[]) { Thread.currentThread().setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException(Thread arg0, Throwable arg1) { throw new java.lang.RuntimeException(“e2”); } }); throw new RuntimeException(“e1”); } Eclipse控制台输出(JRE 1.7): exception:从线程“main”中的UncaughtExceptionHandler抛出java.lang.RuntimeException 我发现的另一个奇怪的是我得到的输出不是来自System.err 。 它似乎完全来自另一个流。 我通过将System.err重定向到System.out来validation这一点,但我仍然得到“红色”输出: public static void main(final String[] args) { System.setErr(System.out); System.out.println(System.err == System.out); System.err.println(“this […]

Java 未经检查的案例警告

好吧,我一直在环顾四周,做了很多谷歌搜索,但我仍然找不到避免这种警告的方法。 Integer result = chooser.showOpenDialog(null); if (result.equals(0)) { String tempHolder = chooser.getSelectedFile().getPath(); filenameLoad = new File(tempHolder); filenameSave = filenameLoad; FileInputStream fis = null; ObjectInputStream in = null; try { fis = new FileInputStream(filenameLoad); in = new ObjectInputStream(fis);; } catch(IOException ex) { ex.printStackTrace(); } try { loadFile = (ArrayList)in.readObject(); } catch(IOException ex) { System.out.println(“Cast fail”); } […]

未捕获的exception处理程序中未捕获的exception

这个问题可能听起来有些愚蠢;) 如何处理UncaughtExceptionHandler中未捕获exception的可能性?