RTS*_*lio 11 error-handling android exception-handling android-contentprovider
我的Android应用程序中有一个自定义内容提供程序,运行得相当好.我希望其他应用也可以访问我的内容提供商.我想要一些干净的方式来传达异常和错误,但据我所知,Android内容提供程序框架没有提供任何方法来跨进程传播异常.
我应该如何向调用者指明异常状态?我是否必须以某种方式将其编码为我的返回数据并依赖客户端进行检查?还有其他选择吗?如果将编码转换为普通的返回数据,那么最好的方法是什么?(我可以看到一些用于替代的Cursor一个返回query调用,但对于Uri返回的insert,或者int由归国update或delete?)
RTS*_*lio 15
有一个简短的RuntimeException子类列表,如果在提供程序中抛出,将在客户端应用程序中重新抛出.这些包括:
IllegalStateExceptionIllegalArgumentExceptionNullPointerExceptionSecurityExceptionBadParcelableException最近更新了Parcel.writeException文档
UnsupportedOperationExceptionNetworkOnMainThreadException来源:创建内容提供商提到IAE和NPE; 我猜测其他人会基于Javadoc工作Parcel.writeException.
客户端应用程序只会获取详细消息,而不是堆栈跟踪或原因堆栈.对于可以编码为String(详细消息)的异常状态,这是一个合理的选择.
我也对其他解决方案感兴趣.