try-/catch-Anweisungen

Dieses Thema im Forum "Softwareforum" wurde erstellt von Stachelpflanze, 19. Juni 2018.

  1. Stachelpflanze

    Stachelpflanze
    Registriert seit:
    1. Juni 2009
    Beiträge:
    5.253
    Guten Tag!

    Vielleicht kann mir jemand einen Ratschlag geben zum Thema try-/catch-Anweisungen (in meinem Fall in PowerShell).

    Nehmen wir an, ich führe eine Reihe Befehle aus, die ich im Fehlerfall mit einer Catch-Anweisung auffangen möchte.
    Das einzige, was ich im Catch-Block tun möchte, ist einen Logeintrag in eine Datei zu schreiben und dann das Programm abzubrechen.

    Welches Verfahren wäre sauberer?

    Möglichkeit 1:
    Code:
    try {
        Anweisung 1
        Anweisung 2
        Anweisung 3
    }
    catch {
        Logeintrag erstellen
    }
    Möglichkeit 2:
    Code:
    try {
        Anweisung 1
    }
    catch {
        Logeintrag erstellen
    }
    try {
        Anweisung 2
    }
    catch {
        Logeintrag erstellen
    }
    try {
        Anweisung 3
    }
    catch {
        Logeintrag erstellen
    }
    Bei Verfahren 2 könnte man vielleicht im Log individueller auf den Fehlerfall eingehen. Aber wirklich schlank wird der Code dann nicht gerade.
    Wer hat Erfahrung und kann einen Tipp geben, wie man so was elegant löst? Vielleicht programmiert ja auch jemand im professionellen Umfeld?

    Danke euch!
     
  2. unreal ..hat nun HSDPA :ugly:

    unreal
    Registriert seit:
    6. Mai 2005
    Beiträge:
    18.553
    Möglichkeit 2. Schaut zwar nicht "schön" aus, aber wenn bei Möglichkeit 1 die erste Anweisung fehlschlägt, wird 2 und 3 erst gar nicht mehr probiert. Weiß nicht wie relevant das für dich ist.
     
    Stachelpflanze gefällt das.
  3. MadCat N7

    MadCat
    Registriert seit:
    29. Februar 2000
    Beiträge:
    66.492
    Ort:
    Delta-Quadrant
    Hab mal kurz nachgeschaut, PowerShell kann mehrere catch-Blöcke verketten oder auch mehrere Exception-Typen mit einem catch-Block abfangen.

    https://blogs.technet.microsoft.com...finally-blocks-for-powershell-error-handling/

    Falls natürlich die anderen Anweisungen unabhängig ausgeführt werden müssen, bleiben nur separate try/catch-Blöcke übrig. Würde aber in der Form sinnvoller sein, das in weitere Methoden zu kapseln.
     
    Stachelpflanze gefällt das.
  4. murray

    murray
    Registriert seit:
    31. August 2006
    Beiträge:
    884
    Nimm Möglichkeit 1. AFAIK kannst du bei Powershell auch die entsprechende Zeilennummer ausgeben. Zudem könntest du mehrere catch Blöcke verfassen, je nach Exception Typ.

    Edit: Wenn die Anweisungen unabhängig voneinander ausgeführt werden müssen/dürfen, dann gilt das, was meine Vorposter angmerkt haben. Hängt immer davon ab, was du möchtest. Wenn eine Anweisung von einer anderen abhängt, kannst du das in einem Block zusammenfassen.
     
    Zuletzt bearbeitet: 19. Juni 2018
    Stachelpflanze gefällt das.
  5. Stachelpflanze

    Stachelpflanze
    Registriert seit:
    1. Juni 2009
    Beiträge:
    5.253
    Ich danke euch allen!
     
    MadCat gefällt das.
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
Top