如何使用RxJava 2处理错误异常?

时间:2019-04-17 12:49:54

标签: android exception rx-java rx-java2

我有 UserDoesNotHaveApiKey 异常,其代码如下:

public class UserDoesNotHaveApiKeyException extends Exception {}

现在在启动屏幕上,我会进行一些检查,以确定用户是否具有API密钥,并且我想将UserDoesNotHaveApiException扔到onError内并打开登录屏幕。

enter image description here

正如您可以在onError中使用的那样,我有if语句,并且它总是转到else语句,即使很明显我有正确的异常。

为什么?

1 个答案:

答案 0 :(得分:1)

长话短说,RuntimeException与其他异常不同。

您可以引发Exception,它的适当现有子类(RuntimeException及其未经检查的子类除外)或Exception的自定义子类。

在Java中,有两种类型的异常-已检查和未检查的异常。这是摘要:

  
      
  • 已检查-扩展java.lang.Exception,以恢复状态,   尝试尝试捕获异常,编译错误。
  •   
  • 未选中-扩展java.lang.RuntimeException(不可恢复)   条件,例如编程错误,不需要try-catch,运行时错误。
  •