dabear Skrevet 19. november 2005 Del Skrevet 19. november 2005 (endret) Hvordan kan jeg sette default errorhandler i python? Altså viss det skjer en exception, vil jeg at feilmeldinga skal bli sendt til self.dialog() Endret 19. november 2005 av dabear Lenke til kommentar
A_N_K Skrevet 20. november 2005 Del Skrevet 20. november 2005 sys.excepthook tror jeg det var. Lenke til kommentar
Me sjøl Skrevet 20. november 2005 Del Skrevet 20. november 2005 Fra dokumentasjonen, sys: "[sys.]excepthook(type, value, traceback) This function prints out a given traceback and exception to sys.stderr. When an exception is raised and uncaught, the interpreter calls sys.excepthook with three arguments, the exception class, exception instance, and a traceback object. In an interactive session this happens just before control is returned to the prompt; in a Python program this happens just before the program exits. The handling of such top-level exceptions can be customized by assigning another three-argument function to sys.excepthook. " Lenke til kommentar
dabear Skrevet 20. november 2005 Forfatter Del Skrevet 20. november 2005 (endret) Jeg prøvde den der, men når jeg plasserer en vilkårlig indexError, ser det ikke ut som det blir fanga opp. Koden er forøvrig: sys.excepthook=BaseWindow.catchException og def dialog(self, message, quit=True, destroy=True): self.contents['dialog'] = gtk.MessageDialog(self, gtk.DIALOG_MODAL |gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, None) self.contents['dialog'].set_markup(message) self.contents['dialog'].run() if destroy: self.contents['dialog'].destroy() if quit: gtk.main_quit() sys.exit() def catchException(type, value, tb): dInfo = "in Myexcepthook" import traceback dInfo += traceback.format_exception(type, value, tb) dInfo += "---------------------Traceback lines-----------------------" dInfo += "\n".join(lines) dInfo += "-----------------------------------------------------------" self.dialog('uncaught exception: \n %s' % dInfo) print dInfo gtk.main_quit() sys.exit(2) Endret 20. november 2005 av dabear Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå