主要有以下6種:
-
EvalError: raised when an error occurs executing code in eval()
(在使用eval方法出現(xiàn)異常時才會報此錯誤) -
RangeError: raised when a numeric variable or parameter is outside of its valid range
(當(dāng)數(shù)字變量或者參數(shù)超出了它的有效范圍時報錯) -
ReferenceError: raised when de-referencing an invalid reference
(引入錯誤:進行引入操作時出現(xiàn)無效引入) -
SyntaxError: raised when a syntax error occurs while parsing code in eval()
(語法錯誤:) -
TypeError: raised when a variable or parameter is not a valid type
(類型錯誤:當(dāng)一個變量或參數(shù)是非法類型時) -
URIError: raised when encodeURI() or decodeURI() are passed invalid parameters
(使用encodeURI和decodeURI方法處理非法參數(shù)時報錯)
以上六中異常對象都繼承自Error對象
Error具有下面一些主要屬性:
- description: 錯誤描述 (僅IE可用).
- fileName: 出錯的文件名 (僅Mozilla可用).
- lineNumber: 出錯的行數(shù) (僅Mozilla可用).
- message: 錯誤信息 (在IE下同description)
- name: 錯誤類型.
- number: 錯誤代碼 (僅IE可用).
- stack: 像Java中的Stack Trace一樣的錯誤堆棧信息 (僅Mozilla可用).
手動拋錯
<pre>try{
throw new Error('出錯了!')
}catch(e){
console.log(e.name + ' : '+ e.message)
}
//JavaScript中的throw命令事實上可以拋出任何對象,并且我們可以在catch接受到此對象。例如:
try {
throw new Date(); // 拋出當(dāng)前時間對象
} catch (e) {
alert(e.toLocaleString()); // 使用本地格式顯示當(dāng)前時間
}
</pre>