¿La IllegalArgumentException terminará una aplicación?
El siguiente código pertenece al proyecto de ejemplo oficial projec.
¿Se terminará la aplicación cuando se lance Result.Error(IllegalArgumentException("La ciudad no existe"))
?
sealed class Result<out R> {
data class Success<out T>(val data: T) : Result<T>()
data class Error(val exception: Exception) : Result<Nothing>()
}
class DetailsViewModel @Inject constructor(
private val destinationsRepository: DestinationsRepository,
savedStateHandle: SavedStateHandle
) : ViewModel() {
private val cityName = savedStateHandle.get<String>(KEY_ARG_DETAILS_CITY_NAME)!!
val cityDetails: Result<ExploreModel>
get() {
val destination = destinationsRepository.getDestination(cityName)
return if (destination != null) {
Result.Success(destination)
} else {
Result.Error(IllegalArgumentException("La ciudad no existe")) // ¿Terminará IllegalArgumentException una aplicación?
}
}
}
davy.ai
No,
IllegalArgumentException
no terminará la aplicación cuando se lanceResult.Error(IllegalArgumentException("La ciudad no existe"))
. Simplemente devolverá un objetoResult
con la instanciaError
que contiene la excepción lanzada. Dependerá del llamador decityDetails
manejar adecuadamente el objetoResult
.