首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UncaughtExceptionHandler探头

UncaughtExceptionHandler探头
EN

Stack Overflow用户
提问于 2011-08-04 18:47:42
回答 3查看 2.2K关注 0票数 0

我有一个类(在它自己的文件中)

代码语言:javascript
复制
public class UncaughtExceptionHandler implements 

 java.lang.Thread.UncaughtExceptionHandler

在我的主程序中,我有以下内容:

代码语言:javascript
复制
Thread.setDefaultUncaughtExceptionHandler( new UncaughtExceptionHandler());

编译时,我得到以下错误:-

代码语言:javascript
复制
cannot instantiate the type Thread.UncaughtExceptionHandler

我是不是漏掉了一些基本要点?

代码如下: import java.io.*;

导入android.content。*;

公共类UncaughtExceptionHandler实现java.lang.Thread.UncaughtExceptionHandler {私有最终上下文myContext;

代码语言:javascript
复制
public UncaughtExceptionHandler(Context context) {
    myContext = context;
}

public void uncaughtException(Thread thread, Throwable exception) {
        boolean crashedOnLastClose = false;
    MyApplication.writeProgressLog("before isfinishing".ERROR_FILE_NAME);
    // The application is being destroyed by the O/S
        crashedOnLastClose = true;

        MyApplication.writeProgressLog("after isfinishing",ERROR_FILE_NAME);


    }   


}
EN

回答 3

Stack Overflow用户

发布于 2011-08-04 19:18:38

问题

在语句中

代码语言:javascript
复制
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler());

代码语言:javascript
复制
new UncaughtExceptionHandler()

实际上是

代码语言:javascript
复制
new java.lang.Thread.UncaughtExceptionHandler()

这是抛出异常

解决方案

检查文件UncaughtExceptionHandler.java

找到包:(在文件的顶部)

代码语言:javascript
复制
package your.package;

现在转到您的主程序

替换

代码语言:javascript
复制
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler()); 

使用

代码语言:javascript
复制
Thread.setDefaultUncaughtExceptionHandler(new your.package.UncaughtExceptionHandler()); 
票数 2
EN

Stack Overflow用户

发布于 2011-08-04 19:23:38

UncaughtExceptionHandler是一个接口,您不能实例化接口。你需要实现它的方法。

您的代码应如下所示:

代码语言:javascript
复制
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {
    @Override
    public void uncaughtException(Thread thread, Throwable ex) {
        // your code
    }
});

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2013-05-16 22:24:01

我的IDE在使用@Override的相同结构中也有类似的问题。新Thread.UncaughtExceptionHandler(){}类型的方法uncaughtException( Throwable)必须重写超类方法:

代码语言:javascript
复制
        Thread.UncaughtExceptionHandler uce = new Thread.UncaughtExceptionHandler() {
            @Override
            public void uncaughtException(Thread t, Throwable e) {
                String s = "ssh to user@" + host + " failed";
                log.error(s);
                throw new IllegalStateException(s, e);
            }
        };
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6940038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档