Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Mehrere Exceptions catchen in einer Abrfrage ...
mosspower
myCSharp.de - Member

Avatar #avatar-2662.jpg


Dabei seit:
Beiträge: 456
Herkunft: Bamberg

Themenstarter:

Mehrere Exceptions catchen in einer Abrfrage ...

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
c-killer
myCSharp.de - Member



Dabei seit:
Beiträge: 92
Herkunft: Heilbad Heiligenstadt

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
mosspower
myCSharp.de - Member

Avatar #avatar-2662.jpg


Dabei seit:
Beiträge: 456
Herkunft: Bamberg

Themenstarter:

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Joetempes
myCSharp.de - Member

Avatar #avatar-3309.jpg


Dabei seit:
Beiträge: 888
Herkunft: Germany

beantworten | zitieren | melden

catch(Exception)

...dann fängst Du alle ab!
private Nachricht | Beiträge des Benutzers
mosspower
myCSharp.de - Member

Avatar #avatar-2662.jpg


Dabei seit:
Beiträge: 456
Herkunft: Bamberg

Themenstarter:

beantworten | zitieren | melden

Zitat von Joetempes

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.
private Nachricht | Beiträge des Benutzers
kleines_eichhoernchen
myCSharp.de - Member

Avatar #avatar-2079.jpg


Dabei seit:
Beiträge: 3.971
Herkunft: Ursprünglich Vogtland, jetzt Much

beantworten | zitieren | melden

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...
private Nachricht | Beiträge des Benutzers
c-killer
myCSharp.de - Member



Dabei seit:
Beiträge: 92
Herkunft: Heilbad Heiligenstadt

beantworten | zitieren | melden

@kleines_eichhoernchen:

gut zu wissen ;-) (also das mit dem throw ohne ex)
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von c-killer am .
private Nachricht | Beiträge des Benutzers