我已经编写了自己的异常 (MyException) 并以 Toast 的形式实现了记录和显示错误消息。这是它的缩写...
public class MyException extends Exception {
public MyException(String msg) {
Looper.prepare();
Toast.makeText(Controller.getInstance().getApplicationContext(), msg , Toast.LENGTH_LONG).show();
//Looper.loop();
Looper.myLooper().quit();
}
}
一切都很好,直到我现在实现了抛出和捕获异常的线程。
您可能已经看到,我玩过 Looper 类,但老实说,我不知道如何让它发挥作用。这是正确的方法吗?您还可以看到我已经在我的 Controller 中存储了 ApplicationContext 的引用。我也应该使用 ActivityContext 来做,而不是从这个 ActivityContext 中制作 Toast 吗?(但我听说这在性能方面不是一个好习惯)
更新
当活动的线程中捕获异常时,这是我应该走的路吗?
private Runnable exceptionCatchingThread = new Runnable() {
@Override
public void run() {
try {
throw new Exception();
} catch (Exception e) {
this.e = e;
runOnUiThread(handleThreadExceptions); }
}
}
private Runnable handleThreadExceptions = new Runnable() {
@Override
public void run() {
//Show toast or call the general ExceptionHandler,
//which is doing logging and stuff
Helper.handleException(e);
}
}