控制台未显示运行时异常

时间:2015-09-11 11:10:03

标签: java exception jvm

我在Java代码中发现了一个非常奇怪的错误 即使我在程序中强制RuntimeException,JVM也无法识别它。

这是我写的内容的演示

private static void someMethod(){
   //Some Code
     if(true)
       throw new RuntimeException();
  // More Code
}

我添加了if(true)以防止无法访问的代码消息,仅用于测试。 但我认为真正的问题是我的代码中存在一些未处理的异常,我无法真正记录,因为缺少printStackTrace(),否则我应该得到一个控制台日志。 我也得到明文:Exception while removing reference. 但它没有System.err消息,它看起来像System.out

是否还有其他记录异常的方法,查看默认控制台,以及什么可能导致异常未处理?

注意:我使用以下外部库:JNativeHook,JLayer,Apache Commons IO

Full GitHub repo 异常应发生在CsgoSounds.java944

操作系统:Windows 10,jre版本:1.8.0_60

2 个答案:

答案 0 :(得分:0)

检查了异常和未检查的异常(扩展运行时异常的所有内容)。

编译器强制您处理已检查的异常(使用try catch或throws声明)。您不必被迫处理未经检查的异常。但你可以,只需在代码中添加一个try catch,然后就可以在其上调用printstacktrace。

答案 1 :(得分:0)

JNativeHook阻止了所有控制台输出。我必须先启用该功能。

Logger logger = Logger.getLogger(GlobalScreen.class.getPackage().getName());
                logger.setLevel(Level.WARNING);

完成了这项工作。