Ausnahme-Behandlung
|
Praktisch jedes m�gliches Programm einschlie�lich c# .net kann irgendeine Menge St�rungen haben. Sie k�nnen als Kompilierzeitst�rungen und Laufzeitfehler breit eingestuft werden. Kompilierzeitst�rungen sind St�rungen, die w�hrend des Kompilation Prozesses des Quellenprogramms gefunden werden k�nnen. Die meisten ihnen sind Syntaxst�rungen. Laufzeitfehler geschehen, wenn Programm l�uft.
|
Es ist sehr schwierig, die Laufzeitfehler zu finden und auszupr�fen. Diese St�rungen benannten auch Ausnahmen. Richtlinien der guten Kodierungart sagen, da� Programm anfa�t jeden Laufzeitfehler mu�. Ausnahme erzeugt einen Ausnahmeanruf an der Laufzeit. Ausnahmen in C# k�nnen mit zwei Methoden benannt werden:
|
- Verwenden des Throwoperators. Er benennt den handhabencode irgendwie und verarbeitet eine Ausnahme.
-
Wenn das Verwenden der Operatoren schief geht, kann es eine Ausnahme erzeugen.
|
Unterschiedliche Arten von Ausnahmen
|
C# Sprache benutzt viele Arten Ausnahmen, die in den speziellen Kategorien definiert werden. Alle werden von der niedrigen Kategorie �bernommen, die System.Exception genannt wird. Es gibt Kategorien, die viele Arten Ausnahmen verarbeiten: aus Ged�chtnisausnahme heraus warf Stapelsammelausnahme, ung�ltige Bezugsausnahme, Index aus Strecke Ausnahme, Invalider heraus Ausnahme, arithmetische Ausnahme etc. Dieser c# Tutorial besch�ftigt DivideByZero c# Ausnahme- und Gewohnheitskategorien in den c# Ausnahmen.
|
C# hat einige Schl�sselw�rter f�r die Verarbeitung von Ausnahmen definiert. Die wichtigsten sind Versuch, Verriegelung und schlie�lich.
|
Das erste bekannt ist der Versuchoperator. Dieses wird in einem Teil des Codes verwendet, in dem eine M�glichkeit der geworfen zu werden besteht Ausnahme. Aber Operator? Versuch? wird immer mit den Operatoren verwendet: Verriegelung und schlie�lich.
|
Das folgende Beispiel der Behandlung einer einfachen Ausnahme im c# sehen.
|
// try catch exception
int zero = 0;
try
{
int div = 100/zero;
}
catch(DivideByZeroException)
{
Console.WriteLine("Division by zero exception passed");
}
|
|
Dieser Code in der Laufzeit wirft ein DivideByZeroException und schreibt irgendeine Anzeige durch die Konsole. Aber, wenn du freigeben m�chtest, m�ssen einige Betriebsmittel, denen du verursacht wurden, Versuch verwenden? schlie�lich Aufbau. Schlie�lich wird benannt, selbst wenn es keine angehobenen Ausnahmen gab.
|
Bitmap bit = null;
// try finally exception
try
{
bit = new Bitmap(100,100);
}
finally
{
bit.Dispose();
Console.WriteLine("bitmap is disposed");
}
|
|
In der �hnlichen Weise k�nnen wir Versuch verwenden? Verriegelung? schlie�lich Aufbau.
|
Einige gr��ere Projekte konnten eine Anforderung des Verursachens ihrer eigenen kundenspezifischen Ausnahmekategorien haben. Uns versuchen lassen, Kategorie zu verursachen, die email address validiert. Sie validiert f�r? @? Symbol. Einen Blick auf dem folgenden St�ck des Codes bitte haben:
|
public class TextException : Exception
{
public TextException() : base()
{
}
public TextException(string message) : base(message)
{
}
}
public class MailValidator
{
MailValidator()
{
}
private static char symbol = '@';
public static void TestEnteredMail(string mailAddress)
{
if(mailAddress.IndexOf(symbol)==-1)
{
Console.WriteLine("The string entered is not a valid email address");
throw(new TextException());
}
}
}
|
|
War hier verursachter Wechselstrom #. NettoTextException Kategorie, die von der System.Exception Kategorie der .NET Kategorie Bibliothek �bernimmt. Wirklich tut sie nichts, aber es gibt eine zus�tzliche Kategorie MailValidator. Es hat TestEnteredMail Methode, die ein TextException anhebt. Verbrauch von ihm in der Hauptfunktion jetzt betrachten.
|
try
{
MailValidator.TestEnteredMail(Console.ReadLine());
}
catch(TextException)
{
Console.WriteLine("Exception was passed");
}
|
|
So wenn Benutzer Postadresse ohne �@� Symbol Throws eine Ausnahme eintr�gt.
|
 |
 |
Schl�sselwort- Ausnahme-Behandlung, Java Ausnahme, Orakelausnahme, c++ Ausnahme, c# Ausnahme, jsp Ausnahme, Ausnahme API, Ausnahme Tutorial, Throwausnahme, Ausnahmerahmen, Ausnahme vc++, Ausnahme plsql, Spreizen Ausnahme, Ausnahme, die, Paket anfa�t, Throws Ausnahme, Ausnahme servlet, Ausnahme sql, anfassende Probe, Ausnahmeblock, Verriegelung Ausnahme, Anwendung Ausnahme, Ausnahmemethode wirft
|