天天看點

Javascript中的Error 對象

JavaScript 擁有當錯誤發生時提供錯誤資訊的内置 error 對象。error 對象提供兩個有用的屬性:name 和 message。

Error 對象屬性

屬性 描述
name 設定或傳回錯誤名
message 設定或傳回錯誤消息(一條字元串)

Error對象的Name屬性的值Values

error 的 name 屬性可傳回六個不同的值:

錯誤名 描述
EvalError 已在 eval() 函數中發生的錯誤
RangeError 已發生超出數字範圍的錯誤
ReferenceError 已發生非法引用
SyntaxError 已發生文法錯誤
TypeError 已發生類型錯誤
URIError 在 encodeURI() 中已發生的錯誤

Eval 錯誤

EvalError 訓示 eval() 函數中的錯誤。

更新版本的 JavaScript 不會抛出任何 EvalError。請使用 SyntaxError 代替。

範圍錯誤

RangeError 會在您使用了合法值的範圍之外的數字時抛出。

例如:您不能将數字的有效位數設定為 500。

執行個體:

var num = 1;
try {
    num.toPrecision(500);   // 數無法擁有 500 個有效數
 }
catch(err) {
    document.getElementById("demo").innerHTML = err.name;
}      

引用錯誤

假如您使用(引用)了尚未聲明的變量,則 ReferenceError 會被抛出:

執行個體:

var x;
try {
    x = y + 1;   // y 無法被引用(使用)
 }
catch(err) {
    document.getElementById("demo").innerHTML = err.name;
}      

文法錯誤

假如您計算帶文法錯誤的代碼,會 SyntaxError 被抛出:

執行個體:

try {
    eval("alert('Hello)");   // 缺少 ' 會産生錯誤
}
catch(err) {
     document.getElementById("demo").innerHTML = err.name;
}      

類型錯誤

var num = 1;
try {
    num.toUpperCase();   // 您無法将數字轉換為大寫
 }
catch(err) {
    document.getElementById("demo").innerHTML = err.name;
}      

URI 錯誤

try {
    decodeURI("%%%");   // 您無法對這些百分号進行 URI 編碼
 }
catch(err) {
    document.getElementById("demo").innerHTML = err.name;
}      

繼續閱讀