es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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?
            }
        }
}
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    No, IllegalArgumentException no terminará la aplicación cuando se lance Result.Error(IllegalArgumentException("La ciudad no existe")). Simplemente devolverá un objeto Result con la instancia Error que contiene la excepción lanzada. Dependerá del llamador de cityDetails manejar adecuadamente el objeto Result.

Comments are closed.