Latest web development tutorials

C # manipulación de excepción

Anormalidades en los problemas de la ejecución del programa. C # es una excepción en respuesta a las circunstancias excepcionales que surgen cuando el programa se ejecuta, como el intento de dividir por cero.

Se proporciona la excepción de un control del programa se transfiere de una parte a otra parte de la forma. C # manipulación de excepción basada en las cuatro palabras claveanteriores:try, catch, por último ytirar.

  • Proveedores: un bloque try identifica la excepción específica de un bloque de código que se active.Seguido de uno o más bloques de captura.
  • coger: coger el programa de excepción a través de un controlador de excepciones.palabra clave indica la captura de captura anormal.
  • por último: bloque finallyse utiliza para realizar una declaración dada, independientemente de si se produce una excepción ejecutará. Por ejemplo, si abre un archivo, independientemente de si debe haber un archivo de excepciones está cerrado.
  • tiro: Cuando surgen problemas, el programa emite una excepción.Use palabras clave para completar un saque de banda.

gramática

Supongamos que un bloque de anormal, un método que utiliza las palabras clave tratar de atrapar una excepción. Código try / catch código está protegido, el uso try / catch como se muestra en la siguiente sintaxis:

probar
{
   } // Declaración que causó la excepción
captura (e1 ExceptionName)
{
   // Error código de manejo}
captura (e2 ExceptionName)
{
   // Error código de manejo}
captura (ExceptionName ES)
{
   // Error código de manejo}
finalmente
{
   // comandos a ejecutar}

Puede especificar varias instrucciones catch para capturar diferentes tipos de excepciones, para evitar que el bloque try genera múltiples excepciones en diferentes circunstancias.

clases de excepciones en C #

C # excepción es el uso de la representación de clases. clases de excepciones en C # sobre todo, directa o indirectamente derivan de la claseSystem.Exception.System.ApplicationException ySystem.SystemExceptionclase se deriva excepción clase clases System.Exception.

System.ApplicationException apoyo de la clase generada por la excepción de aplicación.Así las excepciones definidas por el programador deben derivarse de esta clase.

System.SystemException clase es la clase base de todo sistema predefinido para las excepciones.

La siguiente tabla muestra alguna derivada de clases de excepción clase Sytem.SystemException predefinido:

异常类描述
System.IO.IOException处理 I/O 错误。
System.IndexOutOfRangeException处理当方法指向超出范围的数组索引时生成的错误。
System.ArrayTypeMismatchException处理当数组类型不匹配时生成的错误。
System.NullReferenceException处理当依从一个空对象时生成的错误。
System.DivideByZeroException处理当除以零时生成的错误。
System.InvalidCastException处理在类型转换期间生成的错误。
System.OutOfMemoryException处理空闲内存不足生成的错误。
System.StackOverflowException处理栈溢出生成的错误。

El manejo de excepciones

C # para tratar de bloque catch se proporciona en forma de un programa de control estructurado de excepciones. El uso de estos bloques, los estados básicos del programa y las declaraciones de gestión de errores separados.

el manejo de estos bloques de error es utilizartry, catchy,finalmente,las palabras clave de lograr. Aquí es una excepción lanzada cuando se divide por cero Ejemplos:

using System;
ErrorHandlingApplication espacio de nombres
{
    DivNumbers clase
    {
        int resultado;
        DivNumbers ()
        {
            resultado = 0;
        }
        división public void (int num1, int num2)
        {
            probar
            {
                resultado = num1 / num2;
            }
            captura (DivideByZeroException e)
            {
                Console.WriteLine ( "excepción detectada: {0}", e);
            }
            finalmente
            {
                Console.WriteLine ( "El resultado: {0}", resultado);
            }

        }
        static void main (String [] args)
        {
            DivNumbers d = new DivNumbers ();
            d.division (25, 0);
            Console.ReadKey ();
        }
    }
}

Cuando el código se compila y ejecuta, produce los siguientes resultados:

Excepción detectada: System.DivideByZeroException: Se ha intentado dividir por cero. 
en ...
Resultado: 0

Crear una excepción definida por el usuario

También puede definir sus propias excepciones. clase de excepción definida por el usuario se deriva de la claseApplicationException.El siguiente ejemplo ilustra este punto:

using System;
UserDefinedException espacio de nombres
{
   TestTemperature clase
   {
      static void main (String [] args)
      {
         Temperatura temp = nueva temperatura ();
         probar
         {
            temp.showTemp ();
         }
         captura (TempIsZeroException e)
         {
            Console.WriteLine ( "TempIsZeroException: {0}", e.Message);
         }
         Console.ReadKey ();
      }
   }
}
TempIsZeroException clase pública: ApplicationException
{
   TempIsZeroException pública (string message): base (mensaje)
   {
   }
}
Temperatura clase pública
{
   temperatura int = 0;
   showTemp public void ()
   {
      si (== temperatura de 0)
      {
         tirar (nueva TempIsZeroException ( "Zero Temperatura encontrado"));
      }
      otro
      {
         Console.WriteLine ( "Temperatura: {0}", temperatura);
      }
   }
}

Cuando el código se compila y ejecuta, produce los siguientes resultados:

TempIsZeroException: Temperatura Cero encontró

throwable

Si la excepción se deriva directa o indirectamente de la claseSystem.Exception, puede lanzar un objeto.Puede utilizar la sentencia catch bloque throw para lanzar el objeto actual de la siguiente manera:

Catch (Exception e)
{
   ...
   tiro correo
}