The stack will be unwound until the error is trapped by a suitable catch or try command. If it reaches the event loop without being trapped, it will be reported through the bgerror mechanism. If it reaches the top level of script evaluation in tclsh, it will be printed on the console before, in the non-interactive case, causing an exit (the behavior in other programs will depend on the details of how Tcl is embedded and used).
By convention, the words in the type argument should go from most general to most specific.
throw {ARITH DIVZERO {divide by zero}} {divide by zero}
Copyright © 2008 Donal K. Fellows
Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TclCmd/throw.htm