Dela via


Undantagsklass och egenskaper

Klassen Exception är den basklass som undantag ärver från. Klasshierarkin är till exempel InvalidCastException följande:

Object
  Exception
    SystemException
      InvalidCastException

Klassen Exception har följande egenskaper som gör det enklare att förstå ett undantag.

Egenskapsnamn beskrivning
Data En IDictionary som innehåller godtyckliga data i nyckel/värde-par.
HelpLink Kan innehålla en URL (eller URL) till en hjälpfil som innehåller omfattande information om orsaken till ett undantag.
InnerException Den här egenskapen kan användas för att skapa och bevara en rad undantag vid undantagshantering. Du kan använda det för att skapa ett nytt undantag som innehåller undantag som tidigare har fångats upp. Det ursprungliga undantaget kan fångas in av det andra undantaget i InnerException egenskapen, vilket gör att kod som hanterar det andra undantaget kan undersöka ytterligare information. Anta till exempel att du har en metod som tar emot ett argument som är felaktigt formaterat. Koden försöker läsa argumentet, men ett undantag genereras. Metoden fångar undantaget och genererar en FormatException. För att förbättra uppringarens förmåga att fastställa orsaken till att ett undantag utlöses är det ibland önskvärt att en metod fångar ett undantag som genereras av en hjälprutin och sedan utlöser ett undantag som är mer vägledande för det fel som har inträffat. Ett nytt och mer meningsfullt undantag kan skapas, där den inre undantagsreferensen kan anges till det ursprungliga undantaget. Det här mer meningsfulla undantaget kan sedan skickas till anroparen. Observera att med den här funktionen kan du skapa en serie länkade undantag som slutar med undantaget som utlöstes först.
Message Innehåller information om orsaken till ett undantag.
Source Hämtar eller anger namnet på programmet eller objektet som orsakar felet.
StackTrace Innehåller en stackspårning som kan användas för att avgöra var ett fel uppstod. Stackspårningen innehåller källfilens namn och programradsnummer om felsökningsinformation är tillgänglig.

De flesta klasser som ärver från Exception implementerar inte ytterligare medlemmar eller tillhandahåller ytterligare funktioner. De ärver helt enkelt från Exception. Därför finns den viktigaste informationen för ett undantag i hierarkin med undantagsklasser, undantagsnamnet och informationen i undantaget.

Vi rekommenderar att du bara genererar och fångar upp objekt som härleds från Exception, men du kan utlösa alla objekt som härleds från Object klassen som ett undantag. Observera att inte alla språk stöder att kasta och fånga objekt som inte härleds från Exception.

Se även