Introducción al manejo de excepciones en C #
No podemos esperar que un usuario ingrese los detalles correctos todo el tiempo. Sin embargo, si la entrada incorrecta o inesperada no se maneja correctamente, todo el código podría bloquearse o ir con un bucle sin fin. Este es un problema que comienza mientras se ejecuta el programa debido a condiciones o entradas inesperadas. Por ejemplo, el resultado es infinito cuando un número se divide por cero. El manejo de excepciones es la forma de decirle al programa que pase al siguiente bloque de código o proporcione el resultado definido en ciertas situaciones. El manejo de excepciones se puede hacer con las siguientes cuatro palabras clave.
- Try: el bloque try define el tipo de excepción a manejar. Aquí es donde se atraparía la excepción. Siempre se emparejará con un bloque de captura.
- Captura: una vez que el bloque try ha definido el tipo y obtiene una excepción durante la ejecución, el bloque catch confirmará el tipo de controlador de excepción que se utilizará. Este bloque también determinará dónde se manejará la excepción. Como indica la palabra clave, es como atrapar la excepción.
- Finalmente: este bloque tiene algún conjunto de declaraciones. Independientemente de la excepción que se produzca, las declaraciones definidas en el bloque final siempre se ejecutarán.
- Lanzar: cuando se detecta una excepción, se utiliza la palabra clave throw para mostrar la excepción capturada.
Puede guardar el software o su código de muchas complicaciones definiendo el controlador de excepciones. Es una buena práctica definir el controlador de excepciones siempre que haya una posible excepción.
Sintaxis
Cada vez que se genera la excepción, un método declarado captura la excepción con la ayuda de try y catch palabra clave. Necesitamos colocar esta combinación en la parte del código, se espera una excepción. Estos códigos se llaman código protegido. También puede definir más de una palabra clave catch para una palabra clave try. Al final del contenido, se ejecutará la parte final del código y se ejecutará independientemente de si se genera una excepción.
Código
try
(
//Define the statement that could cause an exception.
)
Catch(ExceptionName secondException)
(
//error handling code
)
Finally
(
//define the statement that will be executed
)
¿Cómo funciona el manejo de excepciones en C #?
Hay muchas clases predefinidas para manejar la excepción. El bloque try cubre la parte del código que podría generar una excepción y catch confirma qué hacer cuando se detecta una excepción. La parte final del bloque define lo que debe hacerse si se detecta o no la excepción y la parte de lanzamiento muestra el mensaje si se establece alguna.
Clases de excepción en C #
Hay muchas clases disponibles en C # a través de las cuales se pueden representar excepciones. Todas las clases se derivan de la clase principal llamada Sistema. Excepción. Hay pocas clases que también se derivan de System.ApplicationException y System.SystemException.
Ejemplos de clases de excepción en C #
Las excepciones se derivan del sistema. Clase de excepción. Aquí está la lista de clases de excepción común de C #.
Excepción | Descripción |
System.DivideByZeroException | maneja el error al intentar dividir un número por cero. |
System.NullReferenceException | maneja el error cuando se refiere a un objeto que no existe. |
System.InvalidCastException | maneja el error al intentar una conversión no válida. |
System.IO.IOException | Todos los errores de entrada-salida se manejan. |
System.FieldAccessException | Cuando intente acceder a clases no autorizadas |
1. C # intentar / atrapar
El manejo de excepciones se realiza mediante try y atrapa el bloque en C #. El bloque de prueba en C # se usa para colocar el código que puede generar una excepción. La excepción es manejada por el bloque catch.
Ejemplo de C # sin try / catch
Código:
using System;
public class exceptionhandling
(
public static void Main(string() args)
(
int a = 10;
int b = 0;
int x = a/b; //we are trying to divide the number with zero
Console.WriteLine("other part of the code");
)
)
Salida:
Ejemplo de prueba / captura de C #
Código
using System;
public class ExExample
(
public static void Main(string() args)
(
try
(
int a = 10;
int b = 0;
int x = a / b;
)
catch (Exception e) ( Console.WriteLine(e); )
Console.WriteLine("Rest of the code");
)
)
Salida:
Uso de clases de excepción en C # finalmente
Le mostrará el mensaje independientemente de que se detecte la excepción.
Código
using System;
public class Exceptionhandling
(
public static void Main(string() args)
(
try
(
int x = 5;
int y= 0;
int z = x / y;
)
catch (Exception obj) ( Console.WriteLine(obj); )
finally ( Console.WriteLine("Time to execute finally block"); )
Console.WriteLine("Other part of the code");
)
)
Salida:
1. C # finalmente ejemplo si la excepción no se maneja
Código
using System;
public class ExceptionHandling
(
public static void Main(string() args)
(
try
(
int p = 6;
int q = 0;
int r= p/q;
)
catch (NullReferenceException nullObject) ( Console.WriteLine(nullObject); )
finally ( Console.WriteLine("Exception not handled. Now Finally section will be executed"); )
Console.WriteLine("Other part of the code");
)
)
Salida:
2. Excepción definida por el usuario de C #
El sistema no solo está definido, sino que también podemos establecer nuestra propia excepción. Sin embargo, necesitamos heredar el código para poder hacerlo.
Código
using System;
public class userdefinedInvalidAge : Exception
(
public userdefinedInvalidAge (String errorMessage)
: base(errorMessage)
(
)
)
public class TestUserDefinedException
(
static void validateAge(int age)
(
if (age < 18)
(
throw new userdefinedInvalidAge("Sorry, Age must be greater than 18");
)
)
public static void Main(string() args)
(
try
(
validateAge(12);
)
catch (userdefinedInvalidAge e) ( Console.WriteLine(e); )
Console.WriteLine("Rest of the code");
)
)
Salida:
Conclusión
En cualquier lugar que piense que podría generar un error debido a cualquier cosa, se debe usar un controlador de excepciones. Es esencial que use una instrucción catch y comience desde una excepción genérica a una específica. Todo su software o código está en riesgo sin el controlador de excepciones adecuado.
Artículos recomendados
Esta es una guía para el manejo de excepciones en C #. Aquí discutimos cómo funciona el manejo de excepciones en C #, ejemplos y uso de c #. También puede consultar nuestros otros artículos relacionados para obtener más información.
- Sobrecarga en C #
- Funciones de cadena de C #
- Usos de C #
- C # si declaración
- Guía para el manejo de excepciones en VB.NET
- Sobrecarga y anulación en C #
- VB.Net Events