0%
Excepciones y gestión de errores — Capítulo 13

Capítulo 13 — Excepciones y gestión de errores

Parte 1A — Aprender Dart · Capítulo 13 de 62 · 5 h

Capítulo 13 — Excepciones y gestión de errores

Nivel: principiante / intermedio Duración estimada: 5 h Requisitos previos: capítulo 12 — El null safety Lo que sabrás hacer al final: escribir un programa Dart que nunca se detenga bruscamente ante un dato no válido, señalando los problemas con throw y capturándolos en el lugar adecuado con try / on / catch / finally.


13.0 — Objetivos del capítulo

Al final de este capítulo, serás capaz de:

  • explicar qué ocurre, paso a paso, cuando un programa Dart falla;
  • distinguir un Error (fallo del programador) de una Exception (accidente previsible);
  • leer una traza de error de la VM de Dart sin entrar en pánico;
  • proteger un fragmento de código con try;
  • capturar un problema con catch;
  • recuperar el objeto lanzado con catch (e) y la pila de llamadas con catch (e, s);
  • filtrar un tipo de excepción concreto con on;
  • encadenar varias cláusulas on en el orden correcto;
  • combinar on y catch con on ... catch (e);
  • garantizar la ejecución de una limpieza con finally;
  • describir con precisión el orden de ejecución de try, catch y finally;
  • señalar tú mismo un problema con throw;
  • volver a propagar una excepción ya capturada con rethrow;
  • crear tus propias clases de excepción de dominio para tu juego;
  • comprender y provocar una FormatException;
  • explicar por qué falla int.parse() y cómo se construye el mensaje;
  • sustituir una excepción por una comprobación gracias a int.tryParse() y double.tryParse();
  • validar una entrada de usuario completa, desde el texto bruto hasta el valor utilizable;
  • usar ArgumentError y assert para proteger tus propias funciones;
  • articular excepciones y null safety;
  • decidir, en un proyecto real, cuándo capturar una excepción y cuándo dejar que el programa falle.

Comentarios

Los comentarios funcionan con GitHub Discussions

Inicia sesión con GitHub para participar en la discusión

¡Enlace copiado!