關鍵字 (keyword) 中的 try-catch-finally 被用來處理例外 (exception) ,把可能出錯的部份放在 try 的部份,然後程式出錯時解決的部份放在 catch 的地方, finally 的部份無論程式有沒有出錯都會執行。
try 要跟 catch 或 finally 之一連用,不可單獨使用。例如以下程式呼叫不存在的 say() 函數 (function) , catch 後小括弧中的 err 變數會記錄錯誤發生的原因
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function run() { try { say( "哈囉!" ); } catch (err) { document.write(err + "...程式停止執行...." ); } } /* 《程式語言教學誌》的範例程式 檔名:run43.js 功能:示範 JavaScript 程式 作者:張凱慶 時間:西元 2010 年 11 月 */ |
利用以下的 HTML 文件開啟
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | < html > < head > < title >JavaScript Demo</ title > < script src = "run43.js" type = "text/javascript" ></ script > </ head > < body > < input id = "b" type = "button" value = "RUN" onclick = "run();" > < div id = "content" ></ div > </ body > </ html > <!-- 《程式語言教學誌》的範例程式 檔名:jsexample43.html 功能:示範 JavaScript 程式 作者:張凱慶 時間:西元 2010 年 11 月 --> |
執行結果如下

我們可以看到錯誤的原因為 ReferenceError: say is not defined 。
以下程式連用 try-catch-finally
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | function run() { try { say( "哈囉!" ); } catch (err) { document.write(err + "...程式停止執行...." ); } finally { document.write( "無論如何,這個訊息都會被印出...." ); } } /* 《程式語言教學誌》的範例程式 檔名:run44.js 功能:示範 JavaScript 程式 作者:張凱慶 時間:西元 2010 年 11 月 */ |
利用以下的 HTML 文件開啟
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | < html > < head > < title >JavaScript Demo</ title > < script src = "run44.js" type = "text/javascript" ></ script > </ head > < body > < input id = "b" type = "button" value = "RUN" onclick = "run();" > < div id = "content" ></ div > </ body > </ html > <!-- 《程式語言教學誌》的範例程式 檔名:jsexample44.html 功能:示範 JavaScript 程式 作者:張凱慶 時間:西元 2010 年 11 月 --> |
執行結果如下

我們可以看到 finally 的訊息最後也被印出。
另一個關鍵字 throw 可以在程式中丟出例外,使程式中斷執行。這裡丟出的例外可以是字串 (string) 或數字 (number) ,例如以下程式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | function run() { try { if (1 == 0) { throw "1 == 0" ; } else { throw "1 != 0" ; } } catch (err) { document.write(err); } } /* 《程式語言教學誌》的範例程式 檔名:run45.js 功能:示範 JavaScript 程式 作者:張凱慶 時間:西元 2010 年 11 月 */ |
利用以下的 HTML 文件開啟
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | < html > < head > < title >JavaScript Demo</ title > < script src = "run44.js" type = "text/javascript" ></ script > </ head > < body > < input id = "b" type = "button" value = "RUN" onclick = "run();" > < div id = "content" ></ div > </ body > </ html > <!-- 《程式語言教學誌》的範例程式 檔名:jsexample45.html 功能:示範 JavaScript 程式 作者:張凱慶 時間:西元 2010 年 11 月 --> |
執行結果如下

中英文術語對照 | |
---|---|
例外處理 | exception handling |
關鍵字 | keyword |
例外 | exception |
函數 | function |
字串 | string |
數字 | number |
沒有留言:
張貼留言