Provided by: manpages-zh_1.6.3.6-1_all bug

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  捕獲所有的例外,如同錯誤一樣,包括了由  breakcontinue   生成的例外。唯一
       不捕獲的錯誤是在編譯指令碼時發現的語法錯誤。這是因為    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