Seite 1 von 1

Traceback in einem wxMessageDialog ausgeben

Verfasst: Donnerstag 18. Dezember 2003, 10:02
von 2bock
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()

Lösung: Erzeugung einer Streamklasse!

Verfasst: Donnerstag 18. Dezember 2003, 10:14
von 2bock
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

Nicht wundern wenns nicht klappt. ....

Verfasst: Donnerstag 18. Dezember 2003, 10:18
von 2bock_nachtrag
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: