码迷,mamicode.com
首页 > Web开发 > 详细

js中错误处理的相关知识

时间:2017-04-03 18:15:19      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:erro   提前   logs   nbsp   信息   cee   调用   解决   []   

    错误bug是指程序执行过程中,导致程序无法正常执行的情况。

    后果:程序会强行中断退出;

    错误处理:
                即使程序出现错误,也保证程序不异常中断的机制

一般的使用的代码如下:

    try{//始终执行
            //可能出现的代码

        }catch(err){//只有发生错误时才执行;
                         出错时执行的错误处理代码-----通知用户,记录日志,保存进度。
                         err:错误对象,
}
   finally{//无论是否出错,都必须执行的代码----一般用于释放资源。

但是这会导致一个问题,就是放在try catch中的代码,执行效率会降低。

解决方式:
          1.尽量少的将代码放入try catch
          2.如果可提前预知错误原因,可用if else语句来做判断。提前预防错误。

 1 var num = +prompt(‘请输入一个数字‘),
 2             d = +prompt(‘输入一个小数位数‘);
 3 
 4 
 5     try {
 6         var result = num.toFixed(d);
 7         alert(result);
 8     }catch(err){
 9         alert(‘出错了‘);
10         console.log(String(err));
11     }
12     finally {
13         console.log(‘释放资源‘);
14         num = null;d =null;
}
document.write(‘程序继续执行....‘)

改善如下:

1  if(d>=0&&d<=20){
2        var result = num.toFixed(d);
3        alert(result);
4 
5      }else{
6        alert(‘出错了‘);
7        console.log(‘111111111‘);
8     }
9     document.write(‘程序继续执行....‘)

抛出自定义异常

       throw new Error(‘错误信息’);

Js中错误对象的类型:——6种
(要经常总结错误的类型,然后在博客中写出)
SyntaxError:语法错误,程序的语法写错了
ReferenceError:引用错误,要用的变量没找到
TypeError:类型错误,错误的使用对象的类型
比如:对非数组使用[];对非函数使用();对null/undefined使用.xxx;要调用的函数,对象中没有:console.write
RangeError:范围错误,参数超范围;
比如:toFixed(d) d:0-20之间,如果写-2,就出错。
URIerror,EvelError;

 

js中错误处理的相关知识

标签:erro   提前   logs   nbsp   信息   cee   调用   解决   []   

原文地址:http://www.cnblogs.com/xuzhudong/p/6662294.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!