日期:2014-05-16  浏览次数:20294 次

javascript 中的捕获异常

javascript 中的捕获异常

大家是不是觉得调试javascript非常的痛苦,我也觉得。
只要能找到一点可以帮助我们调试javascript的好方法我们都要用上。
其实javascript中也可以捕获异常的,比如:


<div id='bbb' style="display:none">asdf</div>
<script>
??? function a()
??? ...{
??????? try
??????? ...{
??????????? var aaa = document.getElementById('bbb');
??????????? alert(aaa.innerText);
??????? }
??????? catch (e)
??????? ...{
??????????? alert('错误' + e.message + '发生在' + e.lineNumber + '行');
??????? }
??? }
??? a();
</script>


<div id='bbb' style="display:none">asdf</div>
<script>
??? function a()
??? ...{
??????? try
??????? ...{
??????????? var aaa = document.getElementById('sakdhglas');
??????????? alert(aaa.innerText);
??????? }
??????? catch (e)
??????? ...{
??????????? alert('错误' + e.message + '发生在' + e.lineNumber + '行');
??????? }
??? }
??? a();
</script>


就会报错了,js的异常e除了e.message 和 e.lineNumber之外还有一个重要的属性 e.name

e.name 错误类型,
e.message 错误的详细信息.

Error.name的六种值对应的信息:
1. EvalError:eval()的使用与定义不一致?
2. RangeError:数值越界?
3. ReferenceError:非法或不能识别的引用数值?
4. SyntaxError:发生语法解析错误?
5. TypeError:操作数类型错误?
6. URIError:URI处理函数使用不当

这样你的js代码在运行到有捕获异常的代码时,就算代码出错了,也会继续往下运行代码,不会停止,而且使用了异常对js的调试也有一定的帮助。