Pythonfrage ( alle exceptions abfangen???)



  • im Grunde genommen, meldet sich der Interpreter bei einer nicht-abgefangenen Exception mit einer deutlichen Fehlerbeschreibung

    weil, wenn man alle exceptions abfangen würde, dann wäre praktisch der gesamte code in try blöcken, welchen ein except folgt

    Also wie macht ihr es, bzw wie soll man es am besten machen?



  • Du kannst einfach einen einzigen Try-Block um dein gesamtes Programm legen:

    if __name__ == "__main__":
      try:
        blah_blubb()
      except(Exception):
        pass # exceptions werden ignoriert..
    


  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Themen rund um den PC in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Doktor Prokt schrieb:

    Du kannst einfach einen einzigen Try-Block um dein gesamtes Programm legen:

    if __name__ == "__main__":
      try:
        blah_blubb()
      except(Exception):
        pass # exceptions werden ignoriert..
    

    ich wollte aber nicht alle Exceptions ignorieren, da dies meiner Ansicht nach das so ziemlich schwachsinnigste ist, was man machen kann.

    Schließlichj sin die fehlermeldungen sehr aufschlussreich.



  • Dann machst statt dem pass eben ein print 🙄



  • pythonist schrieb:

    Doktor Prokt schrieb:

    Du kannst einfach einen einzigen Try-Block um dein gesamtes Programm legen:

    if __name__ == "__main__":
      try:
        blah_blubb()
      except(Exception):
        pass # exceptions werden ignoriert..
    

    ich wollte aber nicht alle Exceptions ignorieren, da dies meiner Ansicht nach das so ziemlich schwachsinnigste ist, was man machen kann.

    Schließlichj sin die fehlermeldungen sehr aufschlussreich.

    Wie durch BlueTiger schon angedeutet, habe ich dir so viel Abstraktionsvermoegen zugetraut, 'pass' entsprechend deinen Wuenschen durch anderen Code zu ersetzen.

    try:
      qux()
    except Exception,e:
      print str(e)
    


  • Doktor Prokt schrieb:

    pythonist schrieb:

    Doktor Prokt schrieb:

    Du kannst einfach einen einzigen Try-Block um dein gesamtes Programm legen:

    if __name__ == "__main__":
      try:
        blah_blubb()
      except(Exception):
        pass # exceptions werden ignoriert..
    

    ich wollte aber nicht alle Exceptions ignorieren, da dies meiner Ansicht nach das so ziemlich schwachsinnigste ist, was man machen kann.

    Schließlichj sin die fehlermeldungen sehr aufschlussreich.

    Wie durch BlueTiger schon angedeutet, habe ich dir so viel Abstraktionsvermoegen zugetraut, 'pass' entsprechend deinen Wuenschen durch anderen Code zu ersetzen.

    try:
      qux()
    except Exception,e:
      print str(e)
    

    Schön und gut aber ich kapiere den sinn nicht...

    Ich fange die exception ab, damit ich die fehlermeldung selber nochmal ausgeben darf? Sinn? *confused*



  • Naja, dann lass das eben ganz mit dem Abfangen.
    Du musst schon wissen, was du willst.



  • Nanyuki schrieb:

    Naja, dann lass das eben ganz mit dem Abfangen.
    Du musst schon wissen, was du willst.

    Ich wollte nur wissen ob man die Exceptions im nomalfall abfängt oder zulässt.



  • pythonist schrieb:

    Nanyuki schrieb:

    Naja, dann lass das eben ganz mit dem Abfangen.
    Du musst schon wissen, was du willst.

    Ich wollte nur wissen ob man die Exceptions im nomalfall abfängt oder zulässt.

    Grundsaetzlich willst du natuerlich versuchen, alle Exceptions aufzufangen und angemessen zu reagieren, denn unaufgefangene Exceptions beenden das gerade laufende Programm, was zB im Falle einer IOError eher unnoetig ist.

    Eine Exception wird moeglichst nah an der Stelle, an der sie auftreten kann, aufgefangen, sodass Code hoeherer Programmebenen nicht mit Implementierungsdetails niedrigerer Ebenen vermischt wird.


Anmelden zum Antworten