Latest web development tutorials

C # Ausnahmebehandlung

Abnormalitäten während der Programmausführung Probleme. C # ist eine Ausnahme in Antwort auf die Ausnahmefällen auftritt, wenn das Programm ausgeführt wird, wie der Versuch, durch Null zu dividieren.

Die Ausnahme ist vorgesehen, eine Programmsteuerung von einem Teil zu einem anderen Teil des Weges übertragen wird. C # Ausnahmebehandlung auf der Grundlage der vier Schlüsselwörternoben:versuchen, zu fangen, schließlich und zuwerfen.

  • versuchen: ein Try - Block die spezifische Ausnahme eines Codeblock identifiziert aktiviert werden.Gefolgt von einem oder mehreren catch-Blöcke.
  • Problem: Die Ausnahme - Programm durch eine Exception - Handler fangen.Fang-Schlüsselwort gibt abnorme Erfassung.
  • schließlich: schließlich wird der Block eine gegebene Anweisung, unabhängig davon , ob eine Ausnahme ausgelöst wird ausgeführt wird ausführen verwendet.Zum Beispiel, wenn Sie eine Datei öffnen, unabhängig davon, ob es sollte eine Ausnahme Datei geschlossen wird.
  • werfen: Wenn Probleme auftreten, wird das Programm eine Ausnahme auslöst.Verwenden Sie Stichworte, den Ball zu vervollständigen.

Grammatik

Angenommen, ein Block abnormal, ein Verfahren mit den Stichworten versuchen und eine Ausnahme zu fangen. Code try / catch-Block geschützten Code, verwenden try / catch wie in folgender Syntax angezeigt:

versuchen
{
   } // Anweisung, die die Ausnahme verursacht hat
catch (exception e1)
{
   // Fehlerbehandlung Code}
catch (exception e2)
{
   // Fehlerbehandlung Code}
catch (exception eN)
{
   // Fehlerbehandlung Code}
schließlich
{
   // Anweisungen auszuführen}

Sie können mehrere catch-Anweisungen Liste verschiedene Arten von Ausnahmen zu fangen, die Try-Block erzeugt mehrere Ausnahmen unter verschiedenen Umständen zu verhindern.

Exception-Klassen in C #

C # Ausnahme ist die Verwendung von Klassendarstellung. Exception - Klassen in C # meist direkt oder indirekt ausSystem.Exception Klasse abgeleitet.System.ApplicationException undSystem.SystemExceptionKlasse Ausnahmeklassen System.Exception Klasse abgeleitet.

System.ApplicationException Klasse Unterstützung durch die Anwendungsausnahme erzeugt.So sind die Programmierer definierte Ausnahmen sollten von dieser Klasse abgeleitet werden.

System.SystemException Klasse ist alles vordefinierte Systembasisklasse für Ausnahmen.

Die folgende Tabelle enthält einige abgeleitet aus vordefinierten Sytem.SystemException Klasse Ausnahmeklassen:

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

Ausnahmebehandlung

C #, um zu versuchen und catch-Block wird in Form eines strukturierten Ausnahmebehandlung Programm zur Verfügung gestellt. Mit Hilfe dieser Blöcke, getrennt die Kernprogrammanweisungen und Fehlerbehandlung Aussagen.

Fehler dieser Blöcke ist die Handhabungversuchen,zufangenzu verwenden undschließlichzu erreichen Keywords. Hier ist eine ausgelöste Ausnahme, wenn sie von Null Beispiele unterteilt:

using System;
Namespace ErrorHandlingApplication
{
    Klasse DivNumbers
    {
        int result;
        DivNumbers ()
        {
            Ergebnis = 0;
        }
        public void Division (int num1, int num2)
        {
            versuchen
            {
                Ergebnis = num1 / num2;
            }
            catch (DivideByZeroException e)
            {
                Console.WriteLine ( "Exception abgefangen: {0}", e);
            }
            schließlich
            {
                Console.WriteLine ( "Ergebnis: {0}", result);
            }

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

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

Ausnahme gefangen: System.DivideByZeroException: Versuchte Division durch Null. 
bei ...
Ergebnis: 0

Erstellen Sie benutzerdefinierte Ausnahme

Sie können auch Ihre eigenen Ausnahmen definieren. Benutzerdefinierte Ausnahmeklasse ausApplication Klasse abgeleitet.Das folgende Beispiel veranschaulicht diesen Punkt:

using System;
Namespace UserDefinedException
{
   Klasse TestTemperature
   {
      static void Main (string [] args)
      {
         Temperatur temp = neue Temperatur ();
         versuchen
         {
            temp.showTemp ();
         }
         catch (TempIsZeroException e)
         {
            Console.WriteLine ( "TempIsZeroException: {0}", e.Message);
         }
         Console.ReadKey ();
      }
   }
}
public class TempIsZeroException: Application
{
   public TempIsZeroException (string message): Basis (Meldung)
   {
   }
}
public class Temperatur
{
   int Temperatur = 0;
   public void showTemp ()
   {
      if (Temperatur == 0)
      {
         werfen (neue TempIsZeroException ( "Null-Temperatur gefunden"));
      }
      sonst
      {
         Console.WriteLine ( "Temperatur: {0}", Temperatur);
      }
   }
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

TempIsZeroException: Null Temperatur gefunden

Throwable

Wenn die Ausnahme direkt oder indirekt aus derSystem.Exception Klasse abgeleitet, können Sie ein Objekt werfen.Sie können die catch-Block throw-Anweisung verwenden, um die aktuelle Objekt zu werfen, wie folgt:

Catch (Exception e)
{
   ...
   Wurf e
}