为什么我的空支票无法访问?

时间:2018-08-06 07:32:06

标签: android kotlin nullable unreachable-code

在以下示例中,我具有可为空的属性userId。如果它为null,我想抛出一个异常。 Android Studio告诉我if(userId == null)内的代码块不可访问。谁能解释为什么这无法实现?

return Observable.create<Optional<UserEntity>> { it ->

        val userId: String? = firebaseAuth.currentUser?.uid

        if(userId == null){
            it.onError(throw RuntimeException("Unauthorised"))
            it.onComplete()
        }else{
            //Do something
        }

    }

1 个答案:

答案 0 :(得分:4)

好吧...我知道了...实际上,以下行包含了无法访问的代码:

JkMount * ajp13_worker

原因:您立即引发异常,而不是在处理过程中发生错误时引发异常。实际上,it.onError(throw RuntimeException("Unauthorised")) 本身无法访问。

onError但是,需要将异常作为传递的参数进行抛出,所以您想要的是这样的东西:

onError

即省略it.onError(RuntimException("Unauthorised"))