Try-catch och Exception
Try och catch
När man lägger in kod i ett try-block så förhindrar det att programmet avslutas när ett runtime-fel inträffar, t.ex. att man försöker konvertera något som inte kan konverteras eller komma åt ett index som inte finns i en array. Kort sagt försöker C# köra koden. Istället avbryts körningen, och programmet hoppar istället ner till det catch-block som står under.
Ett Try-block måste alltid paras ihop med minst ett Catch-block.
Att fånga specifika fel
När man får ett runtime-fel så talar C# alltid om vad det är för fel.
Om du vill skriva ett catch-block för att fånga ett specifikt fel så specificerar du feltypen inom parenteser.
Du kan skriva in flera olika catch-block om du vill:
Throw
Om du vill kan du, i dina egna metoder, ge upphov till ett exception som sedan måste catch:as där metoden anropas. På så vis måste du inte hantera alla fel direkt, utan kan sköta allt sådant på ett ställe.
Kasta upp
Om du catch:ar ett fel du inte vill hantera direkt, så kan du helt enkelt använda throw för att tvinga den som anropade den nuvarande metoden att hantera felet.
Exception-typer är klasser
System.IndexOutOfRangeException
är en klass, liksom alla andra sorters exceptions. De har alla System.Exception som basklass. Det gör att man kan fånga in alla exceptions genom att catch:a System.Exception och sedan undersöka felet man fått genom t.ex. is
.
Last updated