語法:控制結構

出自NMM Doc
於 2010年2月4日 (四) 19:48 由 Lititude討論 | 貢獻 所做的修訂 (创建新页面为 '{{模板:正在翻译}} 严格来讲,AviSynth语法只提供了一种控制结构(实际上有两种,另一种是条件运算符号,?...')
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
跳至導覽 跳至搜尋
此頁面尚未完成翻譯,請協助完成翻譯工作

嚴格來講,AviSynth語法只提供了一種控制結構(實際上有兩種,另一種是條件運算符號,? : ,用在其他地方),那就是 try...catch 聲明。

【【目錄】】

try...catch 聲明

try...catch聲明允許執行代碼時產生可能的錯誤,並當錯誤發生時處理此錯誤。

完整的 try...catch語法表述如下:

try {
    ...
    statements
    ...
}
catch(err_msg) {
    ...
    statements
    ...
}

在catch區塊中的字符串err_msg包含了AviSynth在執行try區塊時產生的錯誤信息。這些文字和我們熟悉的當腳本發生嚴重錯誤的時候信息盒子裡顯示的錯誤信息一樣。

可以查詢這些文字(也就是普通的字符串變量)去查找特定的子字符串,判斷發生的錯誤。這個技術可以產生有價值的結果(例子見此)。

其他(廣義上)的控制結構

廣義上看,AviSynth語法中有許多這樣的元素,儘管本身不是控制結構,但當他們組合起來後,就成為了控制結構的等價形式。這些結構最後能完成複雜的編程任務。

考慮以下元素:

Eval()聲明允許執行腳本語言任意聲明(它的哥們兒Apply能簡化用名稱調用函數)。 多行字符串,尤其是用三重引號(文字上是「"""」,三個引號序列)包圍的多行字符串