Del curso: C# esencial
Sentencia try-catch - Tutorial de C#
Del curso: C# esencial
Sentencia try-catch
Veamos ahora un ejemplo más específico de cómo se hace el manejo de excepciones con la sentencia try catch. Como puedes ver, aquí vamos a ingresar o a pedir al usuario que ingrese un numerador y un denominador. Estos los vamos a dividir, numerador entre denominador, y obtenemos un resultado. Todo esto es el bloque de código donde quiero que se haga el manejo de excepciones. Por lo tanto, lo que hago en el bloque catch es poner una de las excepciones que considero puede ocurrir en este código. Por ejemplo, DivideByZeroException es una excepción predefinida de C# que ocurre cuando se hace una división entre 0. Entonces, dentro del catch lo único que hago es imprimir un mensaje. En este caso, que no se puede dividir por 0. Y además, también puedo hacer otras operaciones. En este caso quería demostrar que la excepción tiene ciertas propiedades. Estas también son predefinidas por la librería de excepciones. Y podemos observar cómo tenemos Message, StackTrace, que este es importante para hacer el trackeo o la búsqueda de los errores. Ahí nos dice desde dónde inicia hasta dónde termina. Y el mensaje, por ejemplo, que es un poco menos descriptivo en cuanto al lugar o localización del error, pero nos dice qué fue lo que sucedió. Entonces podemos imprimir también ese mensaje. Vamos a ejecutar nuestro código y nos pide primero un numerador cualquiera y vamos a ingresar un denominador 0. Aquí nos marca el error que quisimos imprimir. Por lo tanto, sabemos que ese bloque de código se ejecutó. Entonces tenemos el error y, además, el mensaje que hemos puesto aquí, intento de dividir entre 0. Esto nos va a servir muchísimo, no necesariamente para mostrarlo al usuario, pero sí para localizar los errores y, como mencionaba, también para poder tener un registro de ellos. Algo más que no había mencionado, pero que es bastante importante, es que podemos tener múltiples catch. Por ejemplo, aquí voy a poner catch nuevamente y voy a especificar el tipo de excepción que quiero manejar. En este caso, además de este tipo de excepción, puedo tener otro tipo de excepción. Por ejemplo, cuando estoy esperando que el usuario ingrese un elemento de tipo entero, pero ingresa un elemento de otro tipo, como por ejemplo un string. A ese tipo de error lo podemos poner como FormatException. Ponemos también ex. Y aquí, lo que voy a hacer es igual imprimir un mensaje, pero vamos a ver cómo podemos imprimir el StackTrace. Aquí el error es error de formato. Ingresa un número entero. StackTrace. Listo. Vamos a imprimirlo para verificar. Vamos a poner, por ejemplo, una palabra y aquí dice "error de formato, ingresa un número entero". Y abajo podemos ver la localización del error. Me dice que esta es la librería donde inicia y, si ves, el último es el programa principal en el cual estamos. Ahí dice la carpeta y demás información que es útil para rastrear el error.