關鍵字 (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 |
沒有留言:
張貼留言