Traceback in einem wxMessageDialog ausgeben

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
2bock
User
Beiträge: 94
Registriert: Freitag 12. September 2003, 07:58
Wohnort: 50.9333300 / 6.3666700

Donnerstag 18. Dezember 2003, 10:02

Hallo zusammen,

ich möchte in meinem Programm die Tracebacks in wxMessageDialogs ausgeben. Nach einigem Ausprobieren stecke ich jetzt aber doch fest. Weiß von euch vielleichtjemand die Lösung. Anbei ist mal ein Beispiel, wie man den Traceback in eine Datei umleitet. Also was ich benötige ist eine Möglichkeit die KOMPLETTE Tracebackmeldung in eine Variable einzutragen.


Code: Alles auswählen

import traceback

def main():
    try: 
        execfile('lalalall.py')
    except: 
        f=file("C:\\trace.txt","w+")
        traceback.print_exc(None,f)
        f.close()


main()
2bock
User
Beiträge: 94
Registriert: Freitag 12. September 2003, 07:58
Wohnort: 50.9333300 / 6.3666700

Donnerstag 18. Dezember 2003, 10:14

Ich hab die Lösung schon gefunden. Damit auch andere, die an diesem Problem ins stocken geraten weiterzuhelfen, hier meine Lösung.

Code: Alles auswählen

import traceback
from wxPython.wx import *

class tcb:
    def __init__(self):
        self.s = ''
    def write(self, s):
        self.s += s
    def read(self):
        return self.s

try: 
    execfile('lalalall.py') 
except: 
    a = tcb()
    traceback.print_exc(None, a)
    msg = wxMessageDialog(None, a.read(), "", wxICON_INFORMATION)
    msg.ShowModal()


Viel Spaß dann noch Leutz :D
2bock_nachtrag

Donnerstag 18. Dezember 2003, 10:18

Nicht wundern wenns nicht klappt. So läuft der Code auf einen Fehler, aber das liegt am None im wxMessageDialog(). Man muß ihm noch ein Parent, sprich wxFrame oder wxDialog übergeben.
:wink: :wink:
Antworten