1 min read

Introduktion till programmering med C# : Felhantering

Introduktion till programmering med C# : Felhantering

Innehållsförteckning

Del 4.

Felhantering

Definition

I .NET så sköts felhantering och felindikationer via en standardiserad mekanism Exceptions.

I .NET så finns det ett stort antal färdiga exceptions eller undantag(som vi utvecklare kallar det, vi skapar aldrig fel i vår kod, bara undantag ifrån normal exekvering😂).

Här är några exempel

  • System.OverflowException
  • System.ArithmeticException
  • System.IO.IOException
  • System.IO.FileNotFoundException
    Plus många, många fler

Gemensamt är att alla kommer ifrån en klass System.Exception som är definierad i bas biblioteket för .NET

Vi kan även skapa egna exceptions för saker och ting som kan inträffa i vår kod som ligger utanför vår kontroll.

Hantera fel i vår kod

Det är av största vikt att vi kan hantera exceptions/fel i vår kod på ett korrekt sätt.
Därför har vi tillgång till ett kod mönster just för detta try...catch...finally.

Här är den formella definitionen.

try{
}
catch(exceptiontyp-1 variabel namn){
    //Här hamnar vi om felet i catch är av typen exceptiontype-1
}
catch(exceptiontyp-2 variabel namn){
    //Här hamnar vi om felet i catch är av typen exceptiontype-2
}
finally{ //valfri
    // Här hamnar vi alltid oavsett om det gått bra eller dåligt
    // Här brukar vi lägga till kod för att eventuellt städa upp.
}

Kasta fel i vår kod

Att kasta ett fel uppåt i applikationen är ett rekommenderat sätt att hantera fel som inträffar som vi inte kan förutspå. För detta använder vi nyckelordet throw.

Exempel.

public void Deposit(decimal amount){
 if(amount <= 0) {
  throw new ArgumentException("Summan måste vara ett positivt värde");
 }
}