在以下示例中,我具有可为空的属性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
}
}
答案 0 :(得分:4)
好吧...我知道了...实际上,以下行包含了无法访问的代码:
JkMount * ajp13_worker
原因:您立即引发异常,而不是在处理过程中发生错误时引发异常。实际上,it.onError(throw RuntimeException("Unauthorised"))
本身无法访问。
onError
但是,需要将异常作为传递的参数进行抛出,所以您想要的是这样的东西:
onError
即省略it.onError(RuntimException("Unauthorised"))
。