Menu
Coddy logo textTech

Captura de errores específicos

Parte de la sección Lógica y flujo del Journey de Kotlin de Coddy. Lección 52 de 63.

Un bloque try ejecuta código que puede lanzar una excepción. Un bloque catch gestiona una excepción coincidente y permite que la ejecución continúe después de try/catch. Captura una excepción específica esperada, como NumberFormatException de toInt, para que los errores de programación no relacionados no queden ocultos silenciosamente.

Dentro de main:

try {
    println("oops".toInt())
} catch (error: NumberFormatException) {
    println("invalid")
}

El análisis genera una excepción antes de que println reciba un número, por lo que el bloque catch correspondiente imprime el mensaje alternativo.

Captura la excepción específica que se espera que lance tu operación.

challenge icon

Desafío

Intermedio

Completa parseMessage con parámetros text: String. Usa try/catch alrededor de text.toInt(), sin recortar. Devuelve value=n si tiene éxito, reemplazando n por el entero analizado, o invalid cuando se lance NumberFormatException.

A menos que se indiquen límites más estrictos arriba, las colecciones contienen como máximo 100 elementos en cada nivel, y los argumentos enteros y los valores enteros de las colecciones están entre -1000 y 1000. El texto proporcionado para el análisis puede incluir representaciones no válidas o fuera de rango, tal como se describe.

Devuelve un valor de tipo String. Conserva el código de entrada/salida proporcionado. Lee los argumentos escalares, uno por línea; una lista comienza con su cantidad seguida de sus elementos, y un mapa comienza con su cantidad de entradas seguida de cada clave y valor. Las listas anidadas repiten el formato de cantidad y elementos para cada fila. El main proporcionado imprime el valor devuelto seguido de un salto de línea. Las listas usan el formato estándar entre corchetes de Kotlin; no imprimas etiquetas adicionales.

Pruébalo tú mismo

fun parseMessage(text: String): String {
    // Escribe tu solución aquí.
    return ""
}
fun main() {
    val text = readLine().orEmpty()
    println(parseMessage(text))
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Playground de Kotlin