關鍵字 (keyword) 中的 try-catch-finally 被用來處理例外 (exception) ,把可能出錯的部份放在 try 的部份,然後程式出錯時解決的部份放在 catch 的地方, finally 的部份無論程式有沒有出錯都會執行。
try 要跟 catch 或 finally 之一連用,不可單獨使用。例如以下程式呼叫不存在的 say() 函數 (function) , catch 後小括弧中的 err 變數會記錄錯誤發生的原因
function run() { try { say("哈囉!"); } catch (err) { document.write(err + "...程式停止執行...."); } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:run43.js 功能:示範 JavaScript 程式 作者:張凱慶 時間:西元 2010 年 11 月 */
利用以下的 HTML 文件開啟
<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> <!-- 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:jsexample43.html 功能:示範 JavaScript 程式 作者:張凱慶 時間:西元 2010 年 11 月 -->
執行結果如下
我們可以看到錯誤的原因為 ReferenceError: say is not defined 。
以下程式連用 try-catch-finally
function run() { try { say("哈囉!"); } catch (err) { document.write(err + "...程式停止執行...."); } finally { document.write("無論如何,這個訊息都會被印出...."); } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:run44.js 功能:示範 JavaScript 程式 作者:張凱慶 時間:西元 2010 年 11 月 */
利用以下的 HTML 文件開啟
<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> <!-- 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:jsexample44.html 功能:示範 JavaScript 程式 作者:張凱慶 時間:西元 2010 年 11 月 -->
執行結果如下
我們可以看到 finally 的訊息最後也被印出。
另一個關鍵字 throw 可以在程式中丟出例外,使程式中斷執行。這裡丟出的例外可以是字串 (string) 或數字 (number) ,例如以下程式
function run() { try { if (1 == 0) { throw "1 == 0"; } else { throw "1 != 0"; } } catch (err) { document.write(err); } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:run45.js 功能:示範 JavaScript 程式 作者:張凱慶 時間:西元 2010 年 11 月 */
利用以下的 HTML 文件開啟
<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> <!-- 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:jsexample45.html 功能:示範 JavaScript 程式 作者:張凱慶 時間:西元 2010 年 11 月 -->
執行結果如下
中英文術語對照 | |
---|---|
例外處理 | exception handling |
關鍵字 | keyword |
例外 | exception |
函數 | function |
字串 | string |
數字 | number |
沒有留言:
張貼留言