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");
}
}