首頁 > web前端 > js教程 > js中的異常處理try...catch使用介紹_javascript技巧

js中的異常處理try...catch使用介紹_javascript技巧

WBOY
發布: 2016-05-16 17:22:00
原創
1006 人瀏覽過

在JavaScript可以使用try...catch來進行異常處理。例如:

複製程式碼 程式碼如下:

try { foo.bar();} catchbar();} catch (e) { alert(e.name ": " e.message);}

目前我們可能得到的系統異常主要包含以下6種:

EvalError: raised when an error occurs executing code in eval()
RangeError: raised when a numeric variable or parameter is outside of its valid range
ReferenceError: raised when de-refereing range
ReferenceError: raised when de-referen or occurs while parsing code in eval()
TypeError: raised when a variable or parameter is not a valid type
URIError: raised when encodeURI() or decodeURI() are passed in raised when encodeURI() or decodeURI() are passed invalised when encodeURI() or decodeURI() are passed invalised when encodeURI() or decodeURI() are passed invalised when.六種異常物件都繼承自Error物件。他們都支援以下兩種建構方法:

new Error();new Error("異常訊息");

手工拋出異常的方法如下:


複製程式碼 程式碼如下:
try { throw new Error("Whoops!");} catch (e) { alertatch (e) { alert (e.name ": " e.message);}


如要判斷異常訊息的類型,可在catch中進行判斷:


複製程式碼 程式碼如下:
try { foo.bar();} catch (e) { if (e instanceof EvalError) { alert(e. name ":" e.message); } else if (e instanceof RangeError) { alert(e.name ": " e.message); } // etc }


Error具有下面一些主要屬性:

description: 錯誤描述(僅IE可用).
fileName: 出錯的檔案名稱(僅Mozilla可用).
lineNumber: 出錯的行數(僅Mozilla可用).
message: 錯誤訊息(在IE下同description)
name: 錯誤類型.
number: 錯誤代碼(僅IE可用).
stack: 像Java中的Stack Trace一樣的錯誤堆疊資訊(僅Mozilla可用).

因此為了更好的了解錯誤訊息我們可以將catch部分改為以下形式:


複製代碼 程式碼如下:
try { foo.bar();} catch (e) { if (browserType != BROWSER_IE) {
alert("name: " e. name "message: " e.message "lineNumber: " e.lineNumber "fileName: " e.fileName "stack: " e.stack);
} else {
alert("name: " e.name " errorNumber: " (e.number & 0xFFFF ) "message: " e.message");
} }


JavaScript中的throw命令事實上可以拋出任何對象,並且我們可以拋出任何對象,而我們可以在catch接受到此物件。例如:


複製程式碼 程式碼如下:
try { throw new Date(>

try { throw new Date();拋出目前時間物件} catch (e) { alert(e.toLocaleString()); // 使用本機格式顯示目前時間}
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板