首页

Javascript

Html
Css
Node.js
Electron
移动开发
小程序
工具类
服务端
浏览器相关
前端收藏
其他
关于
公司注册

Javascript容错处理,window.onerror或try{}catch(err){}

2013年08月15日 发布 阅读(2411) 作者:Jerman

利用javascript开发WEB功能时,代码量小还OK,如果代码非常庞大,这就不可避免的出现一些未知的错误。如果web已经上线,这时却出现了js脚本错误,这对WEB的用户体验是致使的,因为一但出现js脚本错误,网页将停止加载,从而不能正常显示出页面,而失去用户。

在日常的开发中,我们可能会使用debug,firebug等工具来发现javascript开发过程中的一些错误,并加以修复。

在代码的写作中,我们可以使用下面两种方法来避免js的未知错误(屏蔽js错误)

一、使用window.onerror

onerror是javascript很老旧的一种,用来捕获js代码中的错误,它支持三个参数:message,url,line

message:出错的信息

url:出错的地址

line:出错的具体行号(IE6中,提示的行号比真正出错的地方多出一行)

特别要注意的是,onerror并不是所有浏览器都支持的。经过测试发现除safari外,其他浏览器(firefox,IE,chrome等)还是支持它的。

很多网站中会使用下面的代码来使网站容错:

window.onerror = function () { return true; }
调试代码中,我们可以使用下面的代码,提示代码错误所在:

  1. var txt = ""
  2. window.onerror = function(message, url, l) {
  3. txt = "There was an error on this page.\n\n"
  4. txt += "Error: " + message+ "\n"
  5. txt += "URL: " + url + "\n"
  6. txt += "Line: " + l + "\n\n"
  7. txt += "Click OK to continue.\n\n"
  8. alert(txt)
  9. return true
  10. }

二、使用try { .. } catch(err){…} finally {… }

try…catch当中,我们还可以使用throw来抛出错误类型。

需要注意的是try、catch、throw都必须是小写,大写时会出错。

try{}里面包含执行的代码,一但出错,就会执行catch(err){}代码段

catch(err){} : catch接收一个err参数,try里面的代码出错时需要执行的代码,可以为空,表示不提示错误

finally: 不管try里面的代码是否出错,都是执行到finally里面的代码

throw: 用来在try里面指定抛出错误的类型

下面我们一段实例代码来看看:

  1. var x=prompt("Enter a number between 0 and 10:","")
  2. try{
  3. if(x>10)
  4. throw "Err1";
  5. else if(x<0)
  6. throw "Err2"
  7. } catch(err){
  8. if(err=="Err1")
  9. alert("Error! The value is too high")
  10. if(err == "Err2")
  11. alert("Error! The value is too low");
  12. };
版权声明:本站文章除特别声明外,均采用署名-非商业性使用-禁止演绎 4.0 国际 许可协议,如需转载,请注明出处