Exception in einem Script abfangen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
tomtombusiness
User
Beiträge: 39
Registriert: Samstag 22. März 2014, 14:24
Kontaktdaten:

Hi Leute
Ich hab folgende Frage kann man wenn man ein Pythonscript hat was aus mehreren py Dateien besteht alle Exceptions irgendwie in einer weiteren Py Datei abfangen? also das man nicht in jedem Script die Exceptions abfangen muss?
Tutorials sind auf meiner Website zu finden.

Weiter Projektmitglieder werden Gesucht. Egal ob Profi oder Lernwilliger Anfänger
UMTS-Car Pi
ControlCar-Pi

Initiative Stottern ist ein Eisberg
Ein selbstbetroffener Stotterer erzählt von sich und seiner Intensivtherapie
Zum weiterlesen hier
Sirius3
User
Beiträge: 18335
Registriert: Sonntag 21. Oktober 2012, 17:20

@tomtombusiness: Die Frage ist ein bißchen seltsam. Exceptions fängt man immer irgendwo innerhalb der Aufrufhierarchie ab, und zwar dort, wo man sie am sinnvollsten behandeln kann. Kannst Du Dein Problem konkreter beschreiben?
tomtombusiness
User
Beiträge: 39
Registriert: Samstag 22. März 2014, 14:24
Kontaktdaten:

Ich hab zb 15 Phytonscripte die alle irgendwie miteinander zusammenarbeiten aber ich bin zu faul überall die exceptions hinzuschriben deswegen dachte ich ich kann eine weitere Scriptdatei machen und dort alle exceptions behandeln und brauche sie nur einmal zu schreiben statt 15 mal
Tutorials sind auf meiner Website zu finden.

Weiter Projektmitglieder werden Gesucht. Egal ob Profi oder Lernwilliger Anfänger
UMTS-Car Pi
ControlCar-Pi

Initiative Stottern ist ein Eisberg
Ein selbstbetroffener Stotterer erzählt von sich und seiner Intensivtherapie
Zum weiterlesen hier
Sirius3
User
Beiträge: 18335
Registriert: Sonntag 21. Oktober 2012, 17:20

@tomtombusiness: natürlich kannst Du gemeinsam genutzte Funktionalität in ein Modul auslagern, aber das sind dann ganze Funktionen und nicht nur die Exceptions.
BlackJack

@tomtombusiness: Ich verstehe es immer noch nicht. Du kannst Du sicher nicht alle Ausnahmen gleich behandeln. Wie man eine konkrete Ausnahme behandelt hängt ja nicht nur vom Typ ab, sondern auch vom Code bei dem diese Ausnahme potentiell ausgelöst werden kann. Also müsstest Du dann in *einem* Modul das schreiben was Du sonst in den anderen Modulen geschrieben hättest. Nur dass es dann nicht mehr dort stehen würde wo man nachvollziehen kann was passiert. Und es bleibt die gleiche Arbeit. Man hätte also nichts gewonnen.

Edit: Was zum Henker ist ”Virsual Basic”? :-)
tomtombusiness
User
Beiträge: 39
Registriert: Samstag 22. März 2014, 14:24
Kontaktdaten:

ja des meine ich ja net wie gesagt ich will arbeit sparen und jetzt nicht alle exceptions in eine datei verlinken sondern die anderen dateien nicht anrühren und die exceptions in einer datei abfangen ohne was in die andere geschrieben zu haben
Tutorials sind auf meiner Website zu finden.

Weiter Projektmitglieder werden Gesucht. Egal ob Profi oder Lernwilliger Anfänger
UMTS-Car Pi
ControlCar-Pi

Initiative Stottern ist ein Eisberg
Ein selbstbetroffener Stotterer erzählt von sich und seiner Intensivtherapie
Zum weiterlesen hier
tomtombusiness
User
Beiträge: 39
Registriert: Samstag 22. März 2014, 14:24
Kontaktdaten:

Virsual Basic ist ne Programmiersprache aus Microsoft. Sehr sehr einfach und sehr schön aufgebaut. Ist empfehlenswert wenn man einfache anwendungen für Windows programmieren will
Tutorials sind auf meiner Website zu finden.

Weiter Projektmitglieder werden Gesucht. Egal ob Profi oder Lernwilliger Anfänger
UMTS-Car Pi
ControlCar-Pi

Initiative Stottern ist ein Eisberg
Ein selbstbetroffener Stotterer erzählt von sich und seiner Intensivtherapie
Zum weiterlesen hier
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

tomtombusiness hat geschrieben:ja des meine ich ja net wie gesagt ich will arbeit sparen und jetzt nicht alle exceptions in eine datei verlinken sondern die anderen dateien nicht anrühren und die exceptions in einer datei abfangen ohne was in die andere geschrieben zu haben
Das ist der falsche Weg. Wie willst du denn Exceptions sinnvoll aus einem anderen Modul behandeln? Dann solltest du es besser sein lassen.
tomtombusiness hat geschrieben:Virsual Basic ist ne Programmiersprache aus Microsoft. Sehr sehr einfach und sehr schön aufgebaut. Ist empfehlenswert wenn man einfache anwendungen für Windows programmieren will
Hmm, und du kannst das beurteilen obwohl du nicht den Namen der Sprache korrekt schreiben kannst ... :twisted:
Das Leben ist wie ein Tennisball.
karolus
User
Beiträge: 145
Registriert: Samstag 22. August 2009, 22:34

tomtombusiness hat geschrieben:Virsual Basic ist ne Programmiersprache aus Microsoft. Sehr sehr einfach und sehr schön aufgebaut. Ist empfehlenswert wenn man einfache anwendungen für Windows programmieren will
Echt ?
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

tomtombusiness hat geschrieben:Virsual Basic ist ne Programmiersprache aus Microsoft. Sehr sehr einfach und sehr schön aufgebaut.
Die Variante für .NET vielleicht, aber dann kann man auch gleich C# nehmen. Das klassische VB ist ein Krampf hoch drei.

Noch mal zu deinem Exception-Problem. Du kannst Ausnahmen überall in der Aufrufhierarchie abfangen. Ich bezweifle allerdings, dass auf oberster Ebene noch eine sinnvolle kontextsensitive Fehlerbehandlung möglich ist.
tomtombusiness
User
Beiträge: 39
Registriert: Samstag 22. März 2014, 14:24
Kontaktdaten:

Tippfehler Passieren mal du blödman :-D

naja jedenfalls hab ich des jetzt so verstanden das es zwar möglich ist die Exceptions in einem Abzuufangen aber sich nicht wirklich lohnt daher mansche Fehler sich nicht durch die Oberste Ebene Abfangen lassen zb bei Threads

Ich danke euch allen :)
Tutorials sind auf meiner Website zu finden.

Weiter Projektmitglieder werden Gesucht. Egal ob Profi oder Lernwilliger Anfänger
UMTS-Car Pi
ControlCar-Pi

Initiative Stottern ist ein Eisberg
Ein selbstbetroffener Stotterer erzählt von sich und seiner Intensivtherapie
Zum weiterlesen hier
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

tomtombusiness hat geschrieben:naja jedenfalls hab ich des jetzt so verstanden das es zwar möglich ist die Exceptions in einem Abzuufangen aber sich nicht wirklich lohnt daher mansche Fehler sich nicht durch die Oberste Ebene Abfangen lassen zb bei Threads
:shock: Dem wäre wohl nichts hinzuzufügen.
BlackJack

@tomtombusiness: Tippfehler passieren. Rechtschreibprüfungen existieren. Klar passieren mal Rechtschreibfehler, aber Dir passieren sie echt *sehr* häufig. Gerade bei so Sachen wie Webseiten, bei Texten die lange existieren, oder bei Signaturen, beides auch eine Art Aushängeschild, sollte man vielleicht ein wenig sorgfältiger sein.

Und Du hast immer noch nicht verraten wie das technisch aussehen soll Ausnahmen in einem Extra-Modul *sinnvoll* zu behandeln. Was sollte denn in diesem magischen Modul passieren?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:Was sollte denn in diesem magischen Modul passieren?
Dumme Frage. On Error Resume Next. :P
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
snafu
User
Beiträge: 6908
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

BlackJack hat geschrieben:Was zum Henker ist ”Virsual Basic”? :-)
Der Bruder von Phython. ;)
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

tomtombusiness hat geschrieben:Tippfehler Passieren mal du blödman :-D
Der selbe Tippfehler an zwei Stellen bei einem Eigennamen. Unwahrscheinlich. Aber egal. Versuche bei deinem nächsten Programm die Exceptions dort zu behandeln, wo du sie auch sinnvoll behandeln kannst. Wenn du eine Exceptio nicht behandeln kannst, dann lasse es einfach. Dann stürzt dein Programm wenigstens ab, du bekommst eine ordentliche Fehlermeldung und arbeitest nicht versehentlich in einem ungültigen Programmzustand weiter.
Das Leben ist wie ein Tennisball.
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

tomtombusiness hat geschrieben:naja jedenfalls hab ich des jetzt so verstanden das es zwar möglich ist die Exceptions in einem Abzuufangen aber sich nicht wirklich lohnt daher mansche Fehler sich nicht durch die Oberste Ebene Abfangen lassen zb bei Threads
Es gibt da schon eine Möglichkeit, man kann einen eigenen Default-Exception-Handler definieren und diesen sys.excepthook zuweisen.
a fool with a tool is still a fool, www.magben.de, YouTube
Benutzeravatar
snafu
User
Beiträge: 6908
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Nur nochmal zum Verständnis: Gefragt ist also nach einer Möglichkeit, auf der höchstmöglichen Ebene des Programms jegliche Exceptions abzufangen und diese dann komplett gleich zu behandeln (z.B. nur den Fehlertext auf der Konsole ausgeben)?
Benutzeravatar
snafu
User
Beiträge: 6908
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

MagBen hat geschrieben:
tomtombusiness hat geschrieben:naja jedenfalls hab ich des jetzt so verstanden das es zwar möglich ist die Exceptions in einem Abzuufangen aber sich nicht wirklich lohnt daher mansche Fehler sich nicht durch die Oberste Ebene Abfangen lassen zb bei Threads
Es gibt da schon eine Möglichkeit, man kann einen eigenen Default-Exception-Handler definieren und diesen sys.excepthook zuweisen.
Es geht auch auf anderen Wegen. Der Tenor der Antwortenden hier im Thread war auch weniger, dass es *nicht* geht, sondern es ging mehr um die Frage nach der Sinnhaftigkeit eines solchen Vorgehens. Mitunter kann es nötig sein, so vorzugehen, aber meistens gibt es andere Möglichkeiten, die besser sind. Solange der Threadersteller sich aber zu den Hintergründen seiner Frage ausschweigt, lässt sich das natürlich schlecht beurteilen.
BlackJack

Ich fürchte Leonidas hat Recht mit seiner Vermutung, und das geht $GOTT seit Dank nicht.
Antworten