[英]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.