Only a message at the highest exception
Chris Angelico
rosuav at gmail.com
Fri Jun 28 05:37:30 EDT 2019
On Fri, Jun 28, 2019 at 7:33 PM Cecil Westerhof <Cecil at 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
More information about the Python-list
mailing list