Purpose: to discuss the issues of when and how to write exception handling code.
hv - Here is a short snippet showing how to use the return command with -code error to throw an exception
proc double {x} { if {![string is integer $x]} { return -code error "double expects an int, not '$x'" } return [expr {$x * 2}] } set x 5 puts "x = $x" puts "2x = [double $x]" set x "Hello" puts "x = $x" if {[catch {puts "2x = [double $x]"} errmsg]} { puts "Error: $errmsg" }
Output:
x = 5 2x = 10 x = Hello Error: double expects an int, not 'Hello'
See: try ... finally ...