我有一个Android应用程序,它向服务器发出请求并获得响应。我正在使用Retrofit2
和OkHttp
。
我在JSOn
得到回复,然后使用GSON
进行解析。有时,对象可能为null并且应用程序崩溃。我有几个片段的响应,所以如果响应有一些空对象,应用程序可能会在任何部分崩溃。
所以我计划让全局异常捕获类捕获异常并且不会使应用程序崩溃,但会向用户显示一些自定义对话框"Call Support"
。
我不想拥有Android对话框"App not responding"
。
我怎样才能做到这一点?即使服务器发送了sme null对象,我的应用程序也不会崩溃。
答案 0 :(得分:0)
在未捕获异常时使应用程序崩溃的重点是停止执行执行意外行为(这通常是较小的恶意)。
在代码中有一个未捕获的异常意味着一个方法被要求做一些没有意义的事情(因此抛出异常),并且你的代码从未期望/设计任何方式从该状态恢复。崩溃应用程序是最好的行为。
如果您(作为开发人员)期望服务器有时发送空对象,那么您应该在有意义的时候立即处理空对象。
从更大的角度来看,如果您希望您的消息传递模块可能会失败并仍然为您的应用程序设计一个有意义的行为,那么您应该使用合理的ExceptionHandler包装整个模块。