On Fri, Jun 28, 2019 at 7:33 PM Cecil Westerhof <ce...@decebal.nl> wrote: > > I have a tkinter program where I have a function generate_report which > in a try block calls the function append_row. This function has also a > try block. When they get an exception they give message. But when > append_row has already given a message then generate_report should > not. To implement this I use the following class: > class AlreadyHandledException(Exception): > pass > > Then in append_row I have: > except Exception as err: > messagebox.showerror(error_str, > error_append + '\n\n\n\n' + str(err)) > raise AlreadyHandledException() > > And in generate_report I have: > except Exception as err: > if type(err).__name__ != "AlreadyHandledException": > messagebox.showerror(error_str, > error_generate + '\n\n\n\n' + str(err)) > progress.pack_forget() > > Is this an acceptable way, or should I do it differently? >
Well, first off, I would use two separate except clauses, rather than a type check. But are you able to just NOT catch the exception inside append_row? Let it be handled at the top level only. ChrisA -- https://mail.python.org/mailman/listinfo/python-list