Junior
Kan er in C# meerdere catch-blokken zijn voor het afhandelen van uitzonderingen?
sobes.tech AI
Antwoord van AI
Ja, er kunnen meerdere catch-blokken zijn. Dit stelt je in staat om verschillende soorten uitzonderingen op verschillende manieren af te handelen.
Wanneer een uitzondering optreedt, controleert CLR sequentieel de catch-blokken van boven naar beneden, te beginnen met de eerste. De eerste catch-blok waarvan het type uitzondering overeenkomt met het type van de opgetreden uitzondering of het een basisklasse ervan is, wordt uitgevoerd.
try
{
// Code die een uitzondering kan veroorzaken
}
catch (ArgumentNullException ex)
{
// Afhandeling van ArgumentNullException
}
catch (IndexOutOfRangeException ex)
{
// Afhandeling van IndexOutOfRangeException
}
catch (Exception ex)
{
// Afhandeling van alle andere uitzonderingen (basisklasse Exception)
// Deze blok wordt meestal als laatste geplaatst
}
finally
{
// Code die altijd wordt uitgevoerd, ongeacht of er een uitzondering is opgetreden
}
Het is belangrijk om de catch-blokken te ordenen van meer specifieke naar minder specifieke typen uitzonderingen (basisklassen). De catch (Exception ex)-blok moet als laatste komen, omdat het alle uitzonderingen opvangt.