capypad
0 Tage Serie
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
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.