详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp75
window.onerror = function(sMessage,sUrl,sLine){};
onerror函数的三个参数用于确定错误确切的信息,代表的意思依次为:错误信息;发生错误的文件;发生错误的行号。
示例:
<SCRIPT> window.onerror=fnErrorTrap; function fnErrorTrap(sMsg,sUrl,sLine){ oErrorLog.innerHTML="<b>An error was thrown and caught.</b><p>"; oErrorLog.innerHTML+="Error: " + sMsg + "<br>"; oErrorLog.innerHTML+="Line: " + sLine + "<br>"; oErrorLog.innerHTML+="URL: " + sUrl + "<br>"; return false; } function fnThrow(){ eval(oErrorCode.value); } </SCRIPT> <INPUT TYPE="text" ID=oErrorCode VALUE="someObject.someProperty=true;"> <INPUT TYPE="button" VALUE="Throw Error" onclick="fnThrow()"> <P> <DIV ID="oErrorLog"> </DIV>
上面示例的方法很值得借鉴。
在捕获js错误时,我们通常使用try{}catch(e){}的方式,然后通过e.errorMessage等方式获取错误信息然后报告错误。但对于onerror事件可能很少问津,我们是否思考过如何报告错误所在的行号?如果想过这个是否也被这个问题所困扰过,是否认为在js里不可能捕获错误的行号呢?其实本人就遇到上述的几个问题,今日读某人写的一段js代码顿然发现了onerror事件,要说onerror这个时间也是n久以前就知道了,但对于其所带有的三个参数和其特殊性质却一直没有去了解过。经过自己的研究测试,对onerror事件有了一些新的认识和了解。在页面没有错误时,window.onerror事件是不存在的,也就是null(废话!没出错如果onerror出现还正常吗?)我们一般通过函数名传递的方式(引用的方式)将要执行的操作函数传递给onerror事件,如window.onerror=reportError;window.onerror=function(){alert('error')},但我们可能不知道该事件触发时还带有三个默认的参数,他们分别是错误信息,错误页面的url和错误行号。要知道这个可是事件,就如onclick和onmouseover等事件一样,但它是有参数。我们可以这样测试。
<script type="text/javascript"> window.onerror=testError; function testError(){ arglen=arguments.length; var errorMsg="参数个数:"+arglen+"个"; for(var i=0;i<arglen;i++){ errorMsg+="/n参数"+(i+1)+":"+arguments[i]; } alert(errorMsg); window.onerror=null; return true; } function test(){ error } test() </script>
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]
首先将testError方法绑定给onerror事件,然后在test方法里触发一个错误,在IE中执行时我们发现如下提示: --------------------------- Microsoft Internet Explorer --------------------------- 参数个数:3个 参数1:'error' 未定义 参数2:file://E:/yanwei/test/testError.html 参数3:14 --------------------------- 确定 --------------------------- 可以发现,当出错时函数testError捕获到了三个参数。通过将函数绑定到onerror事件就可以在页面出错时捕获以上三个参数。 在测试中还发现以下一些问题: 1、通过在函数末尾加上return true,可以在函数出错时不会弹出系统的错误信息(IE)。 2、如果页面出现多次错误,只捕获第一次错误并进行处理然后终止后面程序的执行。 3、onerror事件并不能捕获所有的错误,只能捕获函数外或函数内错误(??这个是什么意思,可不是开玩笑呢),如 adasdf; function test(){ aaaa; } 可以捕获到adasdf未定义的错误 function test(){ aaaa; } 可以捕获到aaaa未定义的错误,而对于functiona test(){}或function test()dd{} 的错误却不能捕获而会直接弹出系统错误信息。 4、onerror在IE和FF等浏览器执行方式是一样的,而且都包含这三个参数。
相关推荐
可以监听`onerror`和`ontimeout`事件来处理请求失败或超时的情况。同时,`timeout`属性可以设置请求的超时时间: ```javascript xhr.timeout = 5000; // 设置超时时间为5秒 xhr.ontimeout = function() { console....
总的来说,`window.onerror` 是JavaScript中处理运行时错误的关键工具,理解其工作原理和限制,可以帮助开发者构建更健壮和安全的Web应用。通过适当的错误处理策略,可以提升用户体验,同时避免因错误导致的应用程序...
而且,出于安全和隐私的考虑,现代浏览器对window.onerror的跨域访问做了限制,因此需要在同源环境下才能正确使用。 再来看一个具体的异常处理示例。在上面的代码中,变量a被赋予了字符串"helloworld",然后通过...
在Java中,这通常通过实现`javax.websocket.OnMessage`, `OnOpen`, `OnClose`和`OnError`方法的`@ServerEndpoint`注解的类来完成。例如: ```java import javax.websocket.OnClose; import javax.websocket....
1. 数据库创建:使用`window.indexedDB.open()`方法创建或打开数据库,指定数据库名称、版本和初始大小。 2. 对象存储:数据库中存储数据的基本单位是对象存储(Object Store),类似于表。通过`createObjectStore()...
1. 错误捕获:通过try-catch语句或者window.onerror事件监听器,可以捕获并处理运行时的JavaScript错误。 2. 错误反馈:当错误发生时,JavaScript可以用来发送错误报告到服务器,这对于追踪和分析用户端的错误非常...
recognition.onerror = (event) => { console.error('语音识别出错:', event.error); }; ``` 二、`SpeechSynthesis`:语音合成 1. **创建语音合成对象**:创建`SpeechSynthesisUtterance`实例,用于存储合成的...
2. window.onerror事件:全局错误监听,可以捕获未被捕获的错误,包括语法错误。 3. Promise的catch方法:处理Promise链中的错误,避免未捕获的异常导致应用崩溃。 4. Error事件监听器:如EventTarget....
- `clipboard.on(event, callback)`: 添加事件监听器,如`'success'`或`'error'`,回调函数中可以处理复制成功或失败的逻辑。 - `clipboard.destroy()`: 销毁实例,清理监听事件。 3. **浏览器兼容性**: `...
除了try...catch,还有其他一些错误处理方法,比如使用window.onerror全局事件处理器,它可以监听整个页面的所有未捕获错误。当发生错误时,onerror事件会被触发,提供错误信息,开发者可以通过这个事件来记录错误...
- IE使用`try...catch...finally`语句捕获错误,而Firefox支持`window.onerror`全局错误处理。 为了解决这些问题,开发者通常需要使用条件注释、库如jQuery或polyfills来确保代码在各个浏览器中的兼容性。同时,...
- 使用window.onerror事件处理器来捕获那些未被try...catch捕获的异常。 - 在catch块中不要简单地忽略错误,而应该记录错误信息,并且根据错误类型决定处理策略。 - 使用异步编程模式时(如使用Promise),合理使用...
在JavaScript中,异常处理主要通过try...catch...finally语句实现,此外,JavaScript也提供了window.onerror事件和throw语句来处理异常。 首先,我们来看一下try...catch...finally语句的用法。try语句中包含可能抛...
Test4Onerror1.htm onerror错误处理 Test4TryCatch1.htm try catch 语法结构 Test4Throw.htm throw关键字显式抛出异常 throwException.htm 抛出自定义错误 第7章 JavaScript中的XML Test4IE XMLDOM....
6. 实现图片上传:使用uploader 实例的makeThumb 方法生成缩略图,并将其添加到图片容器中。 7. 上传图片处理:在服务器端处理上传的图片,并返回处理结果。 通过这些步骤,开发者可以使用 SwUpload 在 ASP.NET ...
Test4Onerror1.htm onerror错误处理 Test4TryCatch1.htm try catch 语法结构 Test4Throw.htm throw关键字显式抛出异常 throwException.htm 抛出自定义错误 第7章 JavaScript中的XML Test4IE XMLDOM....
#### 使用 `window.onerror` 捕获错误 除了传统的`try...catch`机制外,`window.onerror`也可以用来捕获全局范围内未被捕获的错误。此事件处理器接受三个参数:错误消息、出错脚本的URL以及出错行号。 ```...
本实例聚焦于使用jQuery动态添加多附件上传功能,这是一个常见的需求,特别是在内容管理系统、论坛或者在线表单中。在实际开发中,实现这样一个功能可能会遇到各种挑战,如文件类型检查、文件大小限制、进度显示以及...
在上面的代码中,`loader.load()`方法接收四个参数:`url`是模型文件的路径,`onLoad`是加载成功时的回调,`onProgress`可选,用于跟踪加载进度,`onError`则是加载失败时的回调。 一旦模型加载成功,它会被添加到`...