Scroll to navigation

catch(3tcl) Tcl Built-In Commands catch(3tcl)


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

本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh

8.0 Tcl