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.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.