现如今大家都会选择在网络上汲取相关知识内容,比如2022年02月03日整理发布:javascript怎么进行全局错误处理,为了更好的解答大家的问题,小编也是翻阅整理了相应内容,下面就一起来看一下吧!
(资料图片)
让我们来谈谈javascript如何处理全局错误。相信朋友们也应该密切关注这个话题。现在我们来谈谈javascript如何为朋友处理全局错误。边肖还收集了关于javascript如何处理全局错误的相关信息。我希望你看到后会喜欢。
在JavaScript中,页面全局错误错误可以通过绑定“window.onerrot”事件来处理。语法格式为“函数函数名(msg,url,l,c,error){//code} window.onerror=函数名;”。
本教程操作环境:windows7系统,javascript1.8.5版本1.8.5,戴尔G3电脑。
当JavaScript引擎执行JavaScript代码时,会出现各种错误:可能是语法或拼写错误,浏览器差异(使用浏览器特定的函数),服务器返回的异常没有处理,当然还有很多其他不可预测的因素。当出现错误时,JavaScript引擎将中断后续代码执行并生成错误消息。为了使代码更加健壮,避免代码意外中断,我们需要处理各种异常。
1.本地错误处理本地错误处理是指在代码可能出错的地方进行错误捕获和处理,这需要程进行硬编码。有四个与JavaScript错误处理相关的语句:
1)try,catch语句,错误捕获语句
2)final语句,在错误捕获和处理之后,返回预执行语句。
3)抛出语句,错误抛出语句
案例1:
尝试{
window . abcdefg();
抓住
Alert("出现错误,错误消息为:" e . message ");
}最后{//将始终执行
警惕(‘我会做的!’);
}控制台输出:
有一个错误,错误信息是:window.abcdefg不是函数,我来执行。
finally语句在catch之后和return之前执行。
案例2
!声明文档类型
超文本标记语言
头
meta http-equiv=" Content-Type " Content=" text/html;charset=UTF-8 "
标题投掷演示/标题
/head
身体
脚本
函数myFunction()
{
尝试
{
var x=document . getelementbyid(" demo ")。价值;
If(x=="") throw“不能为空”;
If(isNaN(x)) throw“不是有效数字”;
If(x10) throw "不能大于10 ";
If(x5) throw "不能小于5 ";
}捕获(错误)
var y=document . getelementbyid(" mess ");
y.innerHTML="Error: " err "。
}
}
/script
p请输入5到10之间的数字:/p
输入id="demo "类型="text "
按钮类型="button" onclick="myFunction()"测试输入/按钮
p id="mess"/p
/body
/htmlthrow的功能是将可预测或不可预测的错误转义成用户可以识别的错误。
[推荐学习:javascript高级教程]
2.全局错误处理。由于前端开发人员和代码规格的不同,并非所有的JavaScript代码都有错误处理。因此,在JavaScript代码的执行过程中,意外的异常通常会导致代码的意外终止。因此,我们需要全局捕捉错误异常,并提醒开发人员及时修改代码。只要绑定window.onerrot事件,就可以处理页面全局js错误错误,代码如下:
函数globalErrorHandle(消息,网址,l,c,错误){ 0
console . error(" global js error : ",msg,l);
//TODO其他thi
ngs.}window.onerror = globalErrorHandle;绑定window.onerrot事件,js报错就会调用globalErrorHandle,其中:
msg:错误消息
url:报错页面url
l:代码报错行号
c: 列号error: 错误对象
把上文的案例1,用全局错误来捕捉,代码如下图:
控制台输出:
3、错误上报模块设计全局错误处理并不能阻塞代码意外终止,也就是说当js执行过程中报错又没有try-catch错误处理,则会调用globalErrorHandle,但是后续代码会意外终止不再执行。因此,全局错误处理更多是全局错误记录并上报。通常做3个事情:
globalErrorHandle,全局错误捕捉;
将错误信息上报到服务器(报错页面、行号、列号等);管理员在服务器上发现js错误信息时,责令相关人员修改;
看个案例,截图如下:
上图就是一个简单的js错误上报模块,错误查看页面,信息包括:错误源(哪个页面),错误描述,行号,操作系统+浏览器,操作人,操作时间等。
有几个注意事项:
1)上报内容过滤
如上图所示,好多错误信息都是一样的,如果在某个大循环里不断的在触发错误,则会不断向服务器发送错误信息,因此错误信息发送前先做过滤,操作如下:
页面加载时,先获取 错误源+错误描述 hashcode 去重列表;全局错误捕捉时,生成的错误源+错误描述 hashcode是否已经存在,不存在则上报错误消息;2)上报哪些内容
为了错误重现,建议尽可能使错误信息详细,至少应包含:
错误页面url错误描述、错误行号、列号、stack信息浏览器和操作系统信息操作时间,甚至操作人、参数更多编程相关知识,请访问:编程视频!!
以上就是javascript怎么进行全局错误处理的详细内容,更多请关注php中文网其它相关文章!
来源:php中文网