1、throw
<script>
function counter(x, y) {
if(!x || !y) {
// throw '参数不能为空!';
throw new Error('参数不能为空!');
}
return x + y;
}
counter();
</script>
总结:
-
throw
抛出异常信息,程序也会终止执行 -
throw
后面跟的是错误提示信息 -
Error
对象配合throw
使用,能够设置更详细的错误信息
2、try...catch
try:在try里面的代码发生错误,则不会执行错误后的try里面的代码
catch:捕捉错误
如果try里没有错误,则不会执行catch里面的代码;如果try里面的代码有错则会执行catch里面的代码(或抛出错误或执行其他操作)
try{
}catch (e){
}
<script>
function foo() {
try {
// 查找 DOM 节点
var p = docunent.querySelector('p');
} catch(error) {
// try 代码段中执行有错误时,会执行 catch 代码段
// 查看错误信息
console.log(error.message);
// 终止代码继续执行
return;
}
// 改变文本样式
p.style.color = 'red';
}
foo();
</script>
总结:
-
try...catch
用于捕获错误信息 -
将预估可能发生错误的代码写在
try
代码段中 -
如果
try
代码段中出现错误后,会执行catch
代码段,并截获到错误信息
Error.name的六种值对应的信息:
EvalError:eval()的使用与定义不一样
RangeError:数值越界
ReferenceError:非法或不能识别的引用数值
SyntaxError:发生语法解析错误
TypeError:操作数类型错误
URIError:URI处理函数使用不当