为什么我的空检查无法访问?
Why is my null check unreachable?
在下面的示例中,我有一个可为空的 属性 用户 ID。如果它为空,我想抛出一个异常。 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
.
在下面的示例中,我有一个可为空的 属性 用户 ID。如果它为空,我想抛出一个异常。 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
.