【发布时间】:2012-08-12 04:18:44
【问题描述】:
我的 Android 应用中有一个自定义内容提供程序,运行良好。我希望其他应用程序也可以访问我的内容提供商。我想要一些干净的方式来传达异常和错误,但据我所知,Android 内容提供程序框架没有提供任何跨进程传播异常的方式。
我应该如何向调用者指示异常状态?我是否必须以某种方式将其编码到我返回的数据中并依靠客户来检查它?有没有其他选择?如果编码成普通的返回数据,最好的方法是什么? (我可以看到query 调用返回的Cursor 的许多替代方案,但是insert 返回的Uri 或update 或delete 返回的int 呢?)
【问题讨论】:
-
当您尝试从您的
ContentProvider提出某种RuntimeException时,发生了什么? -
使用
ContentProviderClient、query和insert在提供者抛出RuntimeException时都返回null。在 logcat 中,我可以看到带有标签JavaBinder:*** Uncaught remote exception! (Exceptions are not yet supported across processes.)的消息 -
当抛出任何异常时更新返回 0(似乎)
标签: android exception-handling error-handling android-contentprovider