java - 如何知道错误来自我的生产应用程序的哪个活动?
问题描述
我的应用程序已投入生产 2 个月,我正在检查显示游戏控制台崩溃的部分,并且我已经能够解决一些问题,但有些问题我不知道它们究竟来自什么活动,mi 错误java.lang.IllegalStateException
是当我按下查看更多时:
java.lang.IllegalStateException:
at androidx.work.impl.utils.ForceStopRunnable.run (ForceStopRunnable.java:115)
at androidx.work.impl.utils.SerialExecutor$Task.run (SerialExecutor.java:91)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at java.lang.Thread.run (Thread.java:919)
Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException:
at android.database.sqlite.SQLiteConnection.nativeOpen (Native Method)
at android.database.sqlite.SQLiteConnection.open (SQLiteConnection.java:300)
at android.database.sqlite.SQLiteConnection.open (SQLiteConnection.java:218)
at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked (SQLiteConnectionPool.java:737)
at android.database.sqlite.SQLiteConnectionPool.open (SQLiteConnectionPool.java:284)
at android.database.sqlite.SQLiteConnectionPool.open (SQLiteConnectionPool.java:251)
at android.database.sqlite.SQLiteDatabase.openInner (SQLiteDatabase.java:1386)
at android.database.sqlite.SQLiteDatabase.open (SQLiteDatabase.java:1331)
at android.database.sqlite.SQLiteDatabase.openDatabase (SQLiteDatabase.java:967)
at android.database.sqlite.SQLiteDatabase.openDatabase (SQLiteDatabase.java:955)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked (SQLiteOpenHelper.java:448)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase (SQLiteOpenHelper.java:391)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableSupportDatabase (FrameworkSQLiteOpenHelper.java:145)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase (FrameworkSQLiteOpenHelper.java:106)
at androidx.room.RoomDatabase.beginTransaction (RoomDatabase.java:352)
at androidx.work.impl.utils.ForceStopRunnable.cleanUp (ForceStopRunnable.java:156)
at androidx.work.impl.utils.ForceStopRunnable.run (ForceStopRunnable.java:87)
在安装了我的应用程序的 750 个用户中,它发生了 5 次,是否应该调查单个用户(750 个)发生的错误?最重要的是,我怎么知道错误的确切来源?
解决方案
抛出异常时,放置当前正在访问的用户,以便您可以跟踪它。在异常中添加尽可能多的信息,这将帮助您找出可能导致它的项目。
https://stackify.com/best-practices-exceptions-java/
这些是一些很好的例子以及可以遵循的良好做法。在提到的那些消息中,添加用户 ID 或有助于您识别正在发生的事情的内容。学习制作自定义异常并捕获最具体的异常。不要只捕获异常,最好具体说明您捕获的异常而不是撒网。
推荐阅读
- json - 将 time:now() 修改为小于一小时
- typescript - 无法解决@reach/dialog
- ios - 检测应用程序中 Google 的 chromecast 服务的使用情况
- javascript - 在 Java 服务器和 Node.js 客户端之间发送文本
- rest - 根据 REST 标准,这些 URL 中的哪一个是最好的?
- angular - Angular 7 + jasmine - 奇怪的伊斯坦布尔覆盖问题(得到 97 而不是 100%)
- r - 使用 urbnmapr 在 ggplot 中强制“填充”范围
- python - 如何通过 Python 使用 Selenium 评论实时 youtube 视频
- apache-kafka - 生产者重启后继续Kafka生产者事务
- lua - 如何修复“stdin:1:尝试对 nil 值(全局'lua')执行算术”错误?