异常处理
什么是异常?
计算机不能处理的状况称之为异常.异步异常对象和被try catch捕获的对象是一样的。
- 不会影响下面代码的执行。
- 错误里面的信息是堆栈信息。
- 可以给error对象设置一个code属性,便于我们自己对错误的管理。
var err = new Error('错误对象信息');
err.code = 100;
err.namename = '链接超市';
console.log(err);
console.log(err.code);
console.log(err.namename);
throw抛出异常,导致后面代码无法执行
try catch 只能捕获同步异常
try {
fs.accessSync('./02sfdasdfio.js');
} catch (err) {
console.log("1"+err);
}
access(异步)与accessSync(同步)测试try…catch:
fs.access('hhaa.js',(err,data)=>{
if(err) {
//throw err;
console.log("access"+ err);
}
console.log(data);
})
try{
fs.accessSync('hhaa.js');
}catch(err){
console.log("accessSync:"+ err);
}
//执行结果:
accessSync:ENOENT:no such file or directory,access 'G:\hhaa.js'
access:ENOENT:no such file or directory,access 'G:\hhaa.js'
注意:try…catch只能捕获同步代码的异常:
//示例1
try{
fs.access('hhaa.js',(err,data)=>{
if(err) {
throw err;
}
console.log(data);
})
}catch(err){
console.log(111); //捕获不到异常
}
//示例2
fs.access('hhaa.js',(err,data)=>{
try{
if(err){
throw err;
}
}catch(error){
console.log(111);//可以捕获到异常
}
})
//示例3
try{
fs.accessSync('hhaa.js');
}catch(err){
console.log("accessSync:"+ err); //可以捕获到异常
}