开发者课程【Node.js 入门与实战:try-catch与异步操作】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/588/detail/8261
try-catch与异步操作
try-catch 与异步操作
1、try-catch 的使用
try-catch 是用来捕获异常的,当程序发生异常后,如果不使用try-catch来捕获是会崩溃的,也不会继续使用;
try-catch 只能捕获同步操作的异常,对于异物的操作异常,它无法捕获。
用 err code===ENOENT 判断出错,可以直接判断错误号。不要尝试使用 try-catch 来捕获。
例1、(判断错误号)
var fs = require( 'fs');
fs. write File( -abc.txt', ‘
大家早上好! ', 'utf8' ,function (err){if (err) i
consoLe.log
('出错了!‘);throw err;
}
console.log( 'ok ');});
执行结果:
大家早上好!
注意:只要前面异常抛出,后面的代码都不会执行。如果代码中出现了当前目录中不存在的目录也会报错。
例2、(用try-catch来捕获)
var fs = require( 'fs');
try {
fs. Write File('./abcd.txt ', '
大家早上好! ','utf8', function (err){console.log('ok');
});
catch(e)i
console.log
('出错了~'+e)
执行结果:
大家早上好!
但是当代码中有不属于当前目录的东西,用 try-catch 捕获是捕获不成功的。
总结:异步操作,try-catch 是无法捕获异常的;
对于异步操作,要通过判断错误号(err. code)来进行出错处理。