我有一个名为 UpdaterService 的服务类。以下是我的 onStartCommand() 方法:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if(Constants.DEBUG) Log.d(TAG, "onStarted");
updater = new Updater();
try {
updater.start();
} catch(NullPointerException e) {
Stuff.showErrorMessage();
}
return Service.START_STICKY;
}
updater 是 Updater 类的自定义对象,它扩展了 Thread。以下是我得到的例外:
08-12 12:19:49.708: ERROR/AndroidRuntime(1995): Uncaught handler: thread Updater exiting due to uncaught exception
08-12 12:19:49.708: ERROR/AndroidRuntime(1995): java.lang.NullPointerException: HostActivity not instantiated
at com.morten.app.klepprc.services.UpdaterService$Updater.run(UpdaterService.java:135)
这会导致我的应用程序崩溃。在 UpdaterService.java 的第 135 行:
if(application.getHostActivity() == null) {
throw new NullPointerException("HostActivity not instantiated");
}
为什么我的 catch 块中没有处理异常?所有的反馈都得到了认可。