1. 定义一个异常处理类
public class ExceptionHandler implements Thread.UncaughtExceptionHandler { public ExceptionHandler() { Thread.setDefaultUncaughtExceptionHandler(this); } @Override public void uncaughtException(Thread thread, Throwable ex) { final StringWriter sw = new StringWriter(); final PrintWriter pw = new PrintWriter(sw, true); ex.printStackTrace(pw); String errMsg = sw.getBuffer().toString(); Log.d("未捕获的错误:", errMsg); System.out.println(errMsg); } }
2. 定义一个App启动程序类,在onCreate方法中注册异常处理类,并在 AndroidManifest.xml 中注册启动程序类。
import android.app.Application; public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); new ExceptionHandler(); } }
<application android:name=".MyApp" ... />
3.手动引发一个异常以测试我们的程序。
import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); int a = 1; int b = 0; int c = a/b; System.out.println(c); } }