csharp / intermediate
Snippet
Exception-Filterung mit 'when'
Exception-Filter ermöglichen es, eine Ausnahme nur dann abzufangen, wenn eine bestimmte Bedingung erfüllt ist. Dies ist sauberer als Abfangen und erneutes Werfen, da der Stack nicht unnötig abgebaut wird.
snippet.cs
csharp
1
2
3
4
5
6
7
8
try{PerformNetworkAction();}catch (HttpRequestException ex) when (ex.StatusCode == HttpStatusCode.NotFound){HandleMissingResource();}
Erklärung
1
catch (...) when (condition)
Die 'when'-Klausel gibt ein Prädikat an, das wahr sein muss, damit der Catch-Block ausgeführt wird.
2
ex.StatusCode == ...NotFound
Zielt spezifisch auf 404-Fehler ab, während andere Netzwerkfehler weitergereicht werden.