Hallo "Kollegen",
gibt es für folgendes Konstrukt eine Vereinfachung?
catch(IOException) {
// Ignore this one, this will be handled
// by all other dispatch programs, we don't
// need tons of emails here
}
catch(SqlException) {
// Ignore this one, this will be handled
// by all other dispatch programs, we don't
// need tons of emails here
}
catch {
this.notHandledErrroCounter++;
throw;
}
.. ich dachte an sowas ...
... catch(IOException, SqlException, BlaException) { ...
Danke schon mal für etwaige Antworten im Voraus.
Ich bin mir nicht ganz sicher, ob dass das ist was du meinst, aber probier es doch einfach nur mit:
catch (Exception)
{
...
}
Das gilt dann für alle Exceptions, die du nicht schon vorher abgefangen hast
Ja, OK, das könnte ich machen und dann abfragen ...
if(ex is SqlException || ex is IOException) ...
,
genau, so kann man das auch machen, ich dachte nur, dass es mit diesem Konstrukt möglich wäre, trotzdem Danke, bin erst nach Deinem Post auf die Idee gekommen.
catch(Exception)
...dann fängst Du alle ab!
Ja, das weiß ich, das geht auch mit nur catch { ..., jedoch wollte ich abhängig von mehren Exceptions eine gleiche (oder ungleiche) Behandlung durchführen ... das scheint nicht in einem Catch-Kostrukt zu gehen, hier muss ich halt global catch(Exception ex) machen und dann mit is abfragen, was für ein Typ die Exception ist.
Unbedingt aber einen else-Zweig einbauen und die Exception, die du nicht behandeln kannst weiterwerfen.
catch (Exception ex) {
if (ex is SqlException || ex is IOException) {
...
}
else {
throw;
}
}
Wichtig, nicht throw ex;. Dies wirft die Exception erneut und verschleiert so den StackTrace!
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
@kleines_eichhoernchen:
gut zu wissen 😉 (also das mit dem throw ohne ex)