NAME¶
catch -
對稿本求值並追蹤異常返回
總覽 SYNOPSIS¶
catch script ?
varName?
描述 DESCRIPTION¶
catch
命令被用於防止出錯導致的終止命令解釋。
Catch 遞歸的調用 Tcl
解釋器來執行
script,並且不顧在執行
script
期間可能發生的任何錯誤,它總是返回而不引發(raise)任何錯誤。
如果
script
引發一個錯誤,
catch
將返回一個非零的整數值,相應於異常返回代碼中的一個(參見
tcl.h
來找到代碼值的定義)。如果給出了
varName
參數,則它所指名的變量被設置成從解釋
script 得到的錯誤消息。
如果
script
不引發任何錯誤,
catch
將返回
0(TCL_OK)並設置這個變量為稿本返回的值。
注意
catch
捕獲所有的例外,如同錯誤一樣,包括了由
break 和
continue
生成的例外。唯一不捕獲的錯誤是在編譯稿本時發現的語法錯誤。這是因為
catch
命令只捕捉運行時的錯誤。當
catch
語句被編譯後,稿本同樣要被編譯,並且任何錯誤都將生成一個
Tcl 錯誤。
EXAMPLES¶
catch 命令可在一個
if
中使用,基於一個稿本的(是否)成功而(進行)分支(branch)。
if { [catch {open $someFile w} fid] } {
puts stderr "Could not open $someFile for writing\n$fid"
exit 1
}
catch
命令不捕捉編譯後的語法錯誤。第一次調用
proc
foo
時,(過程)體將被編譯並且生成一個
Tcl 錯誤。
proc foo {} {
catch {expr {1 +- }}
}
關鍵字 KEYWORDS¶
catch, error
[中文版維護人]¶
寒蟬退士
[中文版最新更新]¶
2001/06/21
《中國 Linux 論壇 man
手冊頁翻譯計劃》:¶
http://cmpp.linuxforum.net