Estos casos son llamado Errores en el programa por que no se manejo una excepcion. Un adecuado manejo de Excepciones son necesarias para que la vida de un programa no sea ni corta ni llena de parches o bufos por parte del usuario aunque muchas veces son estos, los usuarios lo que crean estos errores o excepciones dentro de nuestro programa. Para empezar explicare que es una Excepcion
Segun la MSND en .net significa lo siguiente y cito textual:
Representa los errores que se producen durante la ejecución de una aplicación.
No es mas que una clase que contiene todo los tipos de errores que el programa puede arrojar ( ojo solo los de la plataforma .net y microsoft , de otras librerías no ) tambien posee propiedades publicas que nos devuleven valores importante como
- ruta del error
- la fuente del error
- Mensaje de la Excepcion
La forma de construir una Excepción dentro de C# es la sig:
El objeto a es una excepción que ahora tiene como mensaje ="Mensaje"
Este mensaje es el que se le muestra usualmente al usuario si la excepción viene creada directamente del Try-catch entoces esta sera predefinida por la clase
Try-Catch
La intruccion try seguida de un catch nos permite poner a prueba una intruccion de lenguaje y en caso de error el CATCH manejara la excepcion y podremos hacer un caso de contingencia es parecido en metodologia al if pero en este caso estamos directamente sobre el tiempo de ejecución de una instruccion en el procesador o S.O y en caso de error (else) mostrar diferentes informacion y manejar la excepcion
Construcción básica
Entoces lo que esta dentro de las llaves del try sera puesto a prueba en caso de error pasara al bloque del catch que es donde se maneja la excepcio. Al declarar el catch podemos colocar x tipo de excepcion asi como tambien podemos declarar x cantidad de catch pues teóricamente en un buen manejo de las excepciones cada tipo de ellas debe ser manejadas de forma individual.Que quiero decir con todo esto, que podemos tener un try por ejemplo y 3 o 5 catch pero ojo con excepciones diferentes por ejempo asi
Al declarar el catch y su excepción entre parentesis lo siguiente que escribamos despues del tipo de excepcion sera como se llamara la excepcion dentro del bloque catch y solamente dentro de el.
Que es Throw : En este ejemplo vemos la instruccion throw que nos permite "lanzar" la excepcion al nivel que superior o de donde el método o clase fue llamado. funciona de la sigueinte manera
Supongamos que tenemos un metodo "a" que llama a otro "b". ambos tienen un try/catch pero el ultimo tiene throw y la excepcion. Cuado a llama a b y en b ocurre una excepcion en vez de b manejar directamente la excepcion, tenemos un throw y envía el error al método a. Entonces en a si tenemos el manejo del error donde mostramos al usuario. pero para esto el llamado del metodo b debe estar contenido dentro del bloque del TRY. Se puede generar una excepción y darle un throw seguido, y en el metodo que llama "a" detectara una excepción
Propiedades de las Excepción ( en general)
las excepciones como dije antes poseen propiedades publica muy utiles. estas las poseen casi todas, veamos como se usan y que informacion nos da
Excepcion.Message (Mensaje del error)
Devuelve un mensaje que describe la excepción actual. sea de la clase original o la que le dio el programador
Excepcion.Source (Fuente del error):
Nos devuelve o asigna el programa de la solución o el objeto dentro del programa que dio el error
Excepcion.StackTrace (Ruta del error)
Obtiene una representación de cadena de los marcos inmediatos en la pila de llamadas. En resumen una ruta o traza de todo los metodos que fueron llamado antes de producirse el error para formar una cadena de busqueda
Ejercicio:
dentro del metodo principal (main) cree un bloque try-catch que llamame por un swich a otros metodo (como en la calculadora)
Cada metodo debe contener el instanciamiento de una excepcion vista aqui y el throw de la misma
dentro del bloque de catch en el principal debe mostrarse por consola lo siguiente elementos de la excepcion
dentro del metodo principal (main) cree un bloque try-catch que llamame por un swich a otros metodo (como en la calculadora)
Cada metodo debe contener el instanciamiento de una excepcion vista aqui y el throw de la misma
dentro del bloque de catch en el principal debe mostrarse por consola lo siguiente elementos de la excepcion
- ruta del error
- la fuente del error
- Mensaje del error
Material de apoyo:
Referencias:
No hay comentarios:
Publicar un comentario