我有一个类(在它自己的文件中)
public class UncaughtExceptionHandler implements
java.lang.Thread.UncaughtExceptionHandler在我的主程序中,我有以下内容:
Thread.setDefaultUncaughtExceptionHandler( new UncaughtExceptionHandler());编译时,我得到以下错误:-
cannot instantiate the type Thread.UncaughtExceptionHandler我是不是漏掉了一些基本要点?
代码如下: import java.io.*;
导入android.content。*;
公共类UncaughtExceptionHandler实现java.lang.Thread.UncaughtExceptionHandler {私有最终上下文myContext;
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);
}
}发布于 2011-08-04 19:18:38
问题
在语句中
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler());new UncaughtExceptionHandler()实际上是
new java.lang.Thread.UncaughtExceptionHandler()这是抛出异常
解决方案
检查文件UncaughtExceptionHandler.java
找到包:(在文件的顶部)
package your.package;现在转到您的主程序
替换
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler()); 使用
Thread.setDefaultUncaughtExceptionHandler(new your.package.UncaughtExceptionHandler()); 发布于 2011-08-04 19:23:38
UncaughtExceptionHandler是一个接口,您不能实例化接口。你需要实现它的方法。
您的代码应如下所示:
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
// your code
}
});希望这能有所帮助。
发布于 2013-05-16 22:24:01
我的IDE在使用@Override的相同结构中也有类似的问题。新Thread.UncaughtExceptionHandler(){}类型的方法uncaughtException( Throwable)必须重写超类方法:
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);
}
};https://stackoverflow.com/questions/6940038
复制相似问题