js中错误处理的相关知识
错误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;