- // javascript_错误处理
- // 代码 1
- var n = 0, s;
- try {n = s.length;} catch (e) {
- console.log(e);
- }
- console.log(n);
- // 代码解说: catch 语句块用于处理错误, 可以只是将错误打印出来
- // 代码 2
- function main(s) {
- console.log('BEGIN main()');
- try {
- foo(s);
- } catch (e) {
- console.log('出错了:' + e);
- }
- console.log('END main()');
- }
- function foo(s) {
- console.log('BEGIN foo()');
- bar(s);
- console.log('END foo()');
- }
- function bar(s) {
- console.log('BEGIN bar()');
- console.log('length =' + s.length);
- console.log('END bar()');
- }
- main(null);
- // 代码解说: 错误的传播: 如果错误没有在当前函数被捕捉, 那么将向上层调用函数传播
- // 代码 3
- function printTime() {
- throw new Error();
- }
- try {
- setTimeout(printTime, 1000);
- console.log('done');
- } catch (e) {
- console.log('error');
- }
- // 代码解说: 异步代码, 错误无法传播
来源: http://www.bubuko.com/infodetail-2611774.html