首頁 > web前端 > js教程 > JS中的異常處理方法分享_javascript技巧

JS中的異常處理方法分享_javascript技巧

WBOY
發布: 2016-05-16 17:07:53
原創
1686 人瀏覽過

js容錯語句,就是js出錯也不提示錯誤(防止瀏覽器右下角有個黃色的三角符號,要不用戶體驗不好)

複製程式碼 程式碼如下:

window.onerror=function(){return true;}



以下是為了取得js異常訊息,方便開發者找回問題

1,try...catch...

複製代碼 代碼如下:





2 ,throw

複製代碼 代碼如下:
var x=prompt("請輸入0 至10 之間的數字:","")
try
{
if(x>10)
  throw "Err1"
else if(x  throw "Err2"
else if(isNaN(x))
  throw "Err3"
}
catch(er)
{
{
if (er=="Err1")
  alert("錯誤!該值太大!")
if(er == "Err2")
  alert("錯誤!該值太小!")
if(er == "Err3")
  alert("錯誤!該值不是數字!")
}



3,onerror:

複製代碼 代碼如下:





js的異常處理


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

try { foo.bar();} 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 🎜> SyntaxError: raised when a syntax error occurs while parsing code in eval() 
TypeError: raised when a variable or parameter is not a valid type 
URIE paramemed orgem paramean orem) 🎜>上面的六種異常物件都繼承自Error物件。他們都支援以下兩種建構方法:

new Error();new Error("異常訊息");
手工拋出異常的方法如下:

複製程式碼 程式碼如下:

try {
throw new Error("Whoops!
try {
throw new Error("Whoops!"); catch (e) {
alert(e.name ": " e.message);}

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



程式碼如下:



程式碼如下:


try} 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(); // 抛出当前时间对象 } catch (e) { alert(e.toLocaleString()); // 使用本地格式显示当前时间
    }
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板