繁体   English   中英

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

[英]Why is my null check unreachable?

在以下示例中,我具有可为空的属性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
        }

    }

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

it.onError(throw RuntimeException("Unauthorised"))

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

但是onError需要将异常作为传递的参数抛出,所以您宁愿想要的是:

it.onError(RuntimException("Unauthorised"))

即忽略throw

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM