夜鹰教程网-程序员的加油站
 当前位置:文章中心 >> 常见错误调试
js容错语句,就是js出错也不提示错误
夜鹰教程网 来源:www.yyjcw.com 日期:2019-1-4 13:15:47
js容错语句,就是js出错也不提示错误

js容错语句,就是js出错也不提示错误(防止浏览器右下角有个黄色的三角符号,要不用户体验不好)



复制代码 代码如下:


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




下面是为了获取js异常信息,方便开发者找回问题

1,try...catch...


复制代码 代码如下:


<script type="text/javascript">

var txt=""

function message()

{

try

   {

   adddlert("Welcome guest!")

   }

catch(err)

   {

     txt="本页中存在错误。\n\n"

     txt+="点击“确定”继续查看本页,\n"

     txt+="点击“取消”返回首页。\n\n"

     if(!confirm(txt))

         {

         document.location.href="/index.html"

         }

   }

}

</script>

2 ,throw


复制代码 代码如下:


<script type="text/javascript">

var x=prompt("请输入 0 至 10 之间的数:","")

try

{

if(x>10)

  throw "Err1"

else if(x<0)

  throw "Err2"

else if(isNaN(x))

  throw "Err3"

}

catch(er)

{

if(er=="Err1")

  alert("错误!该值太大!")

if(er == "Err2")

  alert("错误!该值太小!")

if(er == "Err3")

  alert("错误!该值不是数字!")

}

</script>

3,onerror:


复制代码 代码如下:


<script type="text/javascript">

onerror=handleErr

var txt=""

function handleErr(msg,url,l)

{

txt="本页中存在错误。\n\n"

txt+="错误:" + msg + "\n"

txt+="URL: " + url + "\n"

txt+="行:" + l + "\n\n"

txt+="点击“确定”继续。\n\n"

alert(txt)

return true

}


function message()

{

adddlert("Welcome guest!")

}

</script>




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  

ReferenceError: raised when de-referencing an invalid reference  

SyntaxError: raised when a syntax error 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 invalid parameters  

上面的六种异常对象都继承自Error对象。他们都支持以下两种构造方法: 


new Error();new Error("异常信息"); 

手工抛出异常的方法如下:



复制代码 代码如下:


try { 

throw new Error("Whoops!");}

catch (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(); // 抛出当前时间对象 } catch (e) { alert(e.toLocaleString()); // 使用本地格式显示当前时间

    }


复制链接 网友评论 收藏本文 关闭此页
上一条: 使用alert() 和document.write() …  下一条: JS错误处理与调试的方法
夜鹰教程网成立于2008年,目前已经运营了将近 13 年,发布了大量关于 html5/css3/C#/asp.net/java/python/nodejs/mongodb/sql server/android/javascript/mysql/mvc/easyui/vue/echarts原创教程。 我们一直都在坚持的是:认证负责、一丝不苟、以工匠的精神来打磨每一套教程,让读者感受到作者的用心。我们默默投入的时间,确保每一套教程都是一件作品,而不是呆板的文字和视频! 目前我们推出在线辅导班试运营,模式为一对一辅导,教学工具为QQ。我们的辅导学科包括 java 、android原生开发、webapp开发、商城开发、C#和asp.net开发,winform和物联网开发、web前端开发,但不仅限于此。 普通班针对的是国内学员,例如想打好基础的大学生、想转行的有志青年、想深入学习的程序员、想开发软件的初学者或者业余爱好者等。 就业办针对即将毕业上岗的大四学生,或者打算转行的初级开发工程师。 留学生班针对的是在欧美、加拿大、澳洲、日本、韩国、新加坡等地留学的中国学子,目的是让大家熟练地掌握编程技能,按时完成老师布置的作业,并能顺利地通过考试。 详细咨询QQ:1416759661   夜鹰教程网  基于角色的权限管理系统(c-s/b-s)。
  夜鹰教程网  基于nodejs的聊天室开发视频教程
  夜鹰教程网  Git分布式版本管理视频教程
  夜鹰教程网  MVC+EasyUI视频教程
  夜鹰教程网  在线考试系统视频教程
  夜鹰教程网  MongoDB视频教程。
  夜鹰教程网 Canvas视频教程
  夜鹰教程网 报表开发视频教程
  热点推荐
看看你的电脑是否可以运行Windows…
断点调试其实并不是多么复杂的一件…
使用alert() 和document.write() …
js容错语句,就是js出错也不提示错…
JS错误处理与调试的方法
对一个或多个实体的验证失败。有关…
几款常用的录屏软件
中国计算机软件设计师考试大纲
  最近更新
断点调试其实并不是多么复杂的一件…
使用alert() 和document.write() …
js容错语句,就是js出错也不提示错…
JS错误处理与调试的方法
对一个或多个实体的验证失败。有关…
几款常用的录屏软件
中国计算机软件设计师考试大纲
看看你的电脑是否可以运行Windows…

关于我们 | 网站建设 | 技术辅导 | 常见问题 | 联系我们 | 友情链接

夜鹰教程网 版权所有 www.yyjcw.com All rights reserved 备案号:蜀ICP备08011740号3