Synopsis edit
- bgerror message
Documentation edit
Description edit
"bgerror" is the name of the procedure that gets called to handle background errors, i.e., errors that can not be propagated normally up the stack.It is not expected that user code will call [bgerror] directly. Instead, it is there to be redefined so that user code can monitor and respond to errors in event handlers.- In very old code you may see this command written as tkerror; that name is obsolete nowadays. Use bgerror instead as it has the same semantics but without the implicit coupling to Tk.
Example edit
During development, one might rush a hack likeproc bgerror message { puts stderr "An event-based script faulted with '$message'." }into use.DKF: I find that it's better to print errorInfo in such cases.
bgerror and tile in Tcl 8.4 edit
KPV 2008-06-13 : In 8.4 the default bgerror code is not tile aware. Thus, the following idiomatic (but incorrect) code will fail (more precisely, the bgerror code configures a scrollbar's -relief which tile doesn't allow):package require -exact Tk 8.4 package require tile namespace import -force ::ttk::* after 10 asdf
Does the documentation describe the calling convention? I didn't notice it. My experience is that the error-handler invokes it as something like
Ken: I want to enquire what is the best method if i got a proc that runs every 20s like the follow code but i want to catch its errors if any of the proc that run afterwards run into errors? I heard using bgerror is not recommended, so what is the best method?
bgerror [firstLineOf $::errorInfo]
Ken: I want to enquire what is the best method if i got a proc that runs every 20s like the follow code but i want to catch its errors if any of the proc that run afterwards run into errors? I heard using bgerror is not recommended, so what is the best method?
proc a { } { #do something... after 1000 a }