- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
小例子:
public class App {
public static void main(String[] args) {
throw new RuntimeException("Test exception");
}
}
按预期打印以下内容:
Exception in thread "main" java.lang.RuntimeException: Test exception
at App.main(App.java:5)
让我们修改这个程序:
public class App {
public static void main(String[] args) {
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
if (e instanceof RuntimeException) throw (RuntimeException)e;
}
});
throw new RuntimeException("Test exception");
}
}
打印:
Exception: java.lang.RuntimeException thrown from the UncaughtExceptionHandler in thread "main"
问题:
为什么消息不包含任何有关其发生位置的信息,并且没有堆栈跟踪、消息?
对于我来说,异常消息看起来很奇怪。
最佳答案
Java API 文档说:
void uncaughtException(Thread t, Throwable e)
Method invoked when the given thread terminates due to the given uncaught exception. Any exception thrown by this method will be ignored by the Java Virtual Machine.
因此,如果您希望程序在某些异常时终止并打印它们的消息/堆栈跟踪,您应该这样做:
@Override
public void uncaughtException(Thread t, Throwable e) {
if (e instanceof RuntimeException) {
e.printStackTrace();
System.exit(1);
}
}
关于java - UncaughtExceptionHandler 更改异常消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18912439/
一 点睛 在没有向线程注入 UncaughtExceptionHandler 回调接口的情况下,线程若出现了异常又该如何处理,下面通过源码追踪下。 public UncaughtExceptionHa
我有一个类(在它自己的文件中) public class UncaughtExceptionHandler implements java.lang.Thread.UncaughtException
小例子: public class App { public static void main(String[] args) { throw new RuntimeE
我创建了一个 UncaughtExceptionHandler,如 this article 所示。 . 我还注册了这个处理程序来捕获所有线程中的异常,如下所示: Thread.setDefa
我已经阅读了几个如何使用 UncaughtExceptionHandler 将异常从嵌套线程传递到父线程的示例。目前,我的嵌套线程的 UncaughtExceptionHandler 按其应有的方式捕
我在 Groovy/Java 中使用 UncaughtExceptionHandler 时遇到问题。 class UncaughtExceptionLogger implements Thread.U
我最近了解了 Java 1.5 的这个功能,并开发了一个示例代码来使用它。我的目标是在线程因未捕获的异常而死亡时重新启动线程。 public class ThreadManager { pub
Thread.UncaughtExceptionHandler声明当处理未捕获异常的方法本身抛出异常时,该异常将被忽略: void uncaughtException(Thread t, Throwa
我不确定为什么未调用 uncaughtException 方法。 static { /** * Register a logger for unhandled exceptions.
我想在我的 Java 应用程序中定义一个应用程序级别 UncaughtExceptionHandler,如果在我的应用程序的一个线程中抛出未捕获的异常,则调用它。我知道可以为一组线程 (ThreadG
在 MonoTouch 中,如何注册未捕获的异常处理程序(或类似函数) 在 Obj-C 中: void uncaughtExceptionHandler(NSException *exception)
我想在记录未处理的异常后关闭应用程序。在这里搜索后,我做了以下内容: public class MyApplication extends Application { //uncaught e
我有一个全局异常处理例程,它在运行时异常中包装了一些异常 像这样 public class ExceptionHandler { public static void handle(){ th
我正在创建一个启动器。有时我会遇到错误,当然我必须修复它们,但我正在尝试为我的整个应用程序使用 UncaughtExceptionHandler。 为此我使用了这个类: public class
我想在我的应用程序中使用 Guice,但当我想运行它时它会抛出以下异常: Exception in thread "main" Exception: com.google.common.util.co
我已经实现了一个 ExceptionHandler 来防止应用程序启动崩溃的 Activity,并且它可以正常工作。我的问题是它不再显示错误对话框。这是异常处理程序的代码: public class
我正在编写一个apk分析程序。我无法深入细节,因为这是研究 Material 。然而,重点是,当我执行分析例程时,我会不时收到以下消息: Exception: java.lang.NullPointe
我想将我的 Maven 项目中的所有异常(在控制台中显示)记录到一个文件中。我创建一个实现 UncaughtExceptionHandler 的类并调用 log4j Logger.error。这适用于
我的消费者没有按照我期望的方式工作。以下是 sscce我的真实程序中发生的情况。 预期: 打印终于来了! 打印关于打印堆栈跟踪 打印 NullPointerException 堆栈跟踪。 实际: 打印
我正在开发一个具有远程异常处理功能的应用程序。也就是说,如果某个地方发生了意外异常,应用程序会正常关闭,并在我们服务器的日志中生成报告。我正在为此使用 UncaughtExceptionHandler
我是一名优秀的程序员,十分优秀!