java android 捕获未处理异常
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); } }
桂棹兮兰桨,击空明兮溯流光。
分类:
Android 开发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!