====== Getting started with Tcl: example 11 ======
This page is part of the Airplug documentation related to Tcl/Tk.\\
[[en:doc:pub:tcltk:start|Back to the Tcl/Tk documentation page]] /
[[en:doc:summary|Back to the Airplug documentation page]]
===== Dealing with errors =====
==== Script ====
#!/usr/bin/tclsh
# errors
# Catching errors
if [ catch { puts stdout "MyNumber = $MyNumber" } MyErrorMsg ] {
puts stderr "An error occured. MyErrorMsg = $MyErrorMsg"
} {
puts stdout "No error occured. MyErrorMsg = $MyErrorMsg"
}
set MyNumber 5
if [ catch { puts stdout "MyNumber = $MyNumber" } MyErrorMsg ] {
puts stderr "An error occured. MyErrorMsg = $MyErrorMsg"
} {
puts stdout "No error occured. MyErrorMsg = $MyErrorMsg"
}
puts stdout "----"
# Catching errors in procedures
proc MarchePas { } {
puts stdout " In procedure MarchePas; error"
error "error in the procedure"
}
proc Marche { } {
puts stdout " In procedure Marche; all is right"
}
if [ catch MarchePas errorMsg ] {
puts stderr "An error occured when calling the MarchePas procedure: \"$MyErrorMsg\""
# reset the error
set errorInfo
} {
puts stdout "No error occured when calling the MarchePas procedure. MyErrorMsg = $MyErrorMsg"
}
if [ catch Marche MyErrorMsg ] {
puts stderr "An error occured when calling the Marche procedure: \"$MyErrorMsg\""
# reset the error
set errorInfo
} {
puts stdout "No error occured when calling the Marche procedure. MyErrorMsg = $MyErrorMsg"
}
==== Output ====
An error occured. MyErrorMsg = can't read "MyNumber": no such variable
MyNumber = 5
No error occured. MyErrorMsg =
----
In procedure MarchePas; error
An error occured when calling the MarchePas procedure: "error in the procedure"
In procedure Marche; all is right
No error occured when calling the Marche procedure. MyErrorMsg =
----
This page is part of the Airplug documentation related to Tcl/Tk.\\
[[en:doc:pub:tcltk:start|Back to the Tcl/Tk documentation page]] /
[[en:doc:summary|Back to the Airplug documentation page]]