【笔记20】Javascript - try...catch
try...catch
编码中,不论是自己还是同事,都会经常会出错而不自知。try ... catch 给我们容错的办法。
先来看个明显的错误:
在我们不确定会不会出错的时候,就可以使用 try ... catch 了。
把正式的代码写在 try 的大括号里:出错后,不抛出错误,后续的代码也能执行。
当 try 里的代码没有问题,就都会顺利执行,包括 try ... catch 之后的代码。但catch里的代码不会被执行。
当 try 里的代码有错误时,错误之前的代码会执行,错误之后的代码不会执行,错误信息会被封装在catch 里的 e 对象中,我们可以输出错误信息;
当 try 里的代码不止一行有错误时,也只会在出错的那一行就停止执行,后面的错误会被忽略;
try ... catch 之后的代码可以正常执行,这也是 try ... catch 存在的意义。
catch 中的 e 对象会存储两个属性: e.name 和 e.message,可以输出这两个属性的值来查看。
看下控制台输出:
try 里的正确代码会被执行,a 被输出。
try 里的第二行出错了,错误信息被catch捕捉存在 e 对中,在控制台输出,格式跟报错时的一样,同时 catch 里的其他代码也会被执行。
try 里面的,在出错后的代码将被忽略,不会被执行,c 没有执行。
try ... catch 之后的代码不受影响,可以正常执行,d 被输出。
Error.name的六种值对应的信息:
1,EvalError: eval()的使用与定义不一致;
2,RangeError:数值越界;
3,ReferenceError:非法或不能识别的引用数值;
4,SyntaxError:发生语法解析错误;
5,TypeError:操作数类型错误;
6,URIError:URI处理函数使用不当;
常见的也就3和4了;
ReferenceError ,但凡没有定义就使用的,都会报这个错误了;
SyntaxError,语法解析错误,通常被认为低级错误;