Repaso: manejo de errores
Parte de la sección Lógica y Flujo del Journey de C# de Coddy. Lección 30 de 66.
Desafío
IntermedioCrea un método llamado processUserData que:
- Acepte dos parámetros: un string
filePathy un intuserAge - Use una instrucción using para leer la primera línea del archivo en
filePath - Verifique que
userAgeesté entre 18 y 120 (inclusive) - Si la edad no es válida, lance una excepción personalizada llamada
InvalidUserAgeExceptioncon el mensaje "Age must be between 18 and 120" - Si el archivo no existe, capture la FileNotFoundException e imprima "User file not found"
- Si ocurre otra excepción de E/S, captúrela e imprima "Error reading user data: [exception message]"
- Para cualquier otra excepción, imprima "An unexpected error occurred"
- Devuelva el contenido del archivo si la operación tiene éxito o "No data" si ocurre cualquier excepción
Pruébalo tú mismo
using System;
using System.IO;
class ProcessUserData
{
// Crea tu excepción personalizada aquí
public static string processUserData(string filePath, int userAge)
{
// Escribe tu código aquí
}
}Todas las lecciones de Lógica y Flujo
1Arrays multidimensionales
Conceptos básicos de arrays 2DDeclaración e inicialización de arrays 2DAcceso a elementos de arrays 2DBucles anidados con arrays 2DArrays irregularesOperaciones comunes con matricesRepaso: arrays multidimensionales4Técnicas de control de flujo
Retornos anticipadosCláusulas de guardaSentencias de salto (goto)Break y ContinueAplanar condicionales anidados7Operadores lógicos avanzados
Evaluación de cortocircuitoOperadores lógicos condicionalesPrecedencia de operadoresRepaso: operadores avanzados2Toma de decisiones avanzada
Múltiples condicionesLógica booleana complejaComparación entre If y SwitchSentencias Switch anidadasRepaso: decisiones avanzadas5Manejo de excepciones
Fundamentos de Try-CatchTipos de excepcionesMúltiples bloques CatchTrabajo con archivosBloque FinallyUso de Using frente a Try-FinallyExcepciones personalizadasRepaso: manejo de errores3Mejoras de bucles
Rendimiento de buclesIteración de estructuras complejasCada tipo de bucleRefactorización de buclesRepaso: bucles optimizados6Manejo de valores nulos
Conceptos básicos de referencias nulasTipos de valor anulablesPatrones de comprobación de valores nulosProgramación defensivaRepaso: seguridad frente a valores nulosPractica por tu cuenta: Compilador de C# online