JavaScript错误和异常
2016-05-10 21:33
483 查看
1.Error对象
表示一个错误,代码运行中发生错误时,会创建Error对象并抛出。
创建错误:
new Error([message],[filename],[lineNumber])
Error类型:
EvalError 与eval相关的错误
InternalError javascript引擎内部错误,如递归太多
RangeError 数值变量或参数超出有效范围
ReferenceError 无效引用
SyntaxError 语法错误
TypeError 变量或参数不属于有效类型
URIError 给encodeURI()或decodeURI传递的参数无效
Error.prototype主要属性
name:'Error'
message 错误信息
stack 错误跟踪
2.处理异常
try catch语句可以处理异常。有三种结构:
try catch
try finally
try catch finally
try中异常发生就不再执行剩余代码,转而执行catch。
try嵌套时,异常被最近的catch捕获一次。catch中能向外抛出新异常。inally中有return将结束整个try,不再处理异常。
4.监听所有异常
表示一个错误,代码运行中发生错误时,会创建Error对象并抛出。
创建错误:
new Error([message],[filename],[lineNumber])
Error类型:
EvalError 与eval相关的错误
InternalError javascript引擎内部错误,如递归太多
RangeError 数值变量或参数超出有效范围
ReferenceError 无效引用
SyntaxError 语法错误
TypeError 变量或参数不属于有效类型
URIError 给encodeURI()或decodeURI传递的参数无效
Error.prototype主要属性
name:'Error'
message 错误信息
stack 错误跟踪
2.处理异常
try catch语句可以处理异常。有三种结构:
try catch
try finally
try catch finally
try中异常发生就不再执行剩余代码,转而执行catch。
try{ //需要被执行的语句 console.log('begin'); throw new Error('hoho!'); //throw new Error('hoho!','test.html','28'); 设置了也没用 console.log('after'); //不会被执行 } catch(err){ //try中有异常时执行的语句 console.error(err.stack); //Error: hoho! at test.html:29 //console.log(err.name+":"+err.message); //Error:hoho! } finally{ //无论是否有异常都会执行的语句 console.log('end.'); }
try嵌套时,异常被最近的catch捕获一次。catch中能向外抛出新异常。inally中有return将结束整个try,不再处理异常。
try{ try{ throw new Error('hoho!'); } catch(err){ console.error('inner',err.message); throw err; } finally{ console.log('end'); } } catch(err){ console.error('outer',err.message); } //output: //end //inner hoho! //outer hoho!
4.监听所有异常
window.onerror = function(message,source,lineNumber,rowNumber,error){ //参数以Chrome为例 console.log('处理错误...'); return true; //true不提示错误,flase提示错误 } //allert(1);
相关文章推荐
- 解析JS中this关键字
- 说说JSON和JSONP,也许你会豁然开朗
- js实现继承的6种方式 寄生继承没弄懂
- 韩顺平细说jsp购物车项目--用户登录及验证
- 使用JavaScript实现ajax
- 全端Web开发 使用JavaScript与Java 阅读笔记
- 三种js数组去重的方法
- bzoj 1452: [JSOI2009]Count
- jsp与FCKeditor配置使用说明
- cojs 简单的数位DP 题解报告
- 【JAVAScript】js为日期框设置默认时间
- JavaScript的计时器的工作原理(setTimeout/setInterval)
- 记录js错误:Uncaught SyntaxError: Unexpected token <
- Realm-json遇到的问题
- 由于BOM头导致的Json解析出错
- 怎么遍历jsonarray
- jsp页面中截取字符串
- JSTL标签(可以直接在jsp页面格式化)
- iframe.js
- jsp如何往js里传值