try-catch 与异步操作|学习笔记

简介: 快速学习 try-catch 与异步操作

开发者课程【Node.js 入门与实战:try-catch与异步操作】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/588/detail/8261


try-catch与异步操作


try-catch 与异步操作

1try-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)来进行出错处理

相关文章
|
7月前
|
前端开发 UED
【面试题】async/await 函数到底要不要加 try catch ?
【面试题】async/await 函数到底要不要加 try catch ?
|
前端开发
18 # promise 的 finally 方法实现原理
18 # promise 的 finally 方法实现原理
66 0
|
1月前
|
前端开发 JavaScript
使用 try-catch 语句来捕获 Promise 中的异常
【10月更文挑战第26天】使用try-catch语句捕获Promise中的异常是一种非常实用的技术,能够使异步代码的错误处理更加清晰、可控,提高程序的可靠性和稳定性。在实际开发中,合理地运用try-catch语句以及其他相关的错误处理机制,可以有效地应对各种可能出现的异常情况,为用户提供更好的体验。
|
1月前
|
前端开发
|
1月前
|
JSON 前端开发 JavaScript
处理 Promise 中的异常
【10月更文挑战第26天】处理 Promise 中的异常需要综合运用 catch 方法、在 then 方法中正确处理错误、避免未捕获的异常以及合理使用 async/await 与 try/catch 等方式。通过良好的异常处理机制,可以提高 Promise 异步操作的可靠性和程序的稳定性,为用户提供更优质的体验。
|
3月前
|
前端开发 JavaScript
async和await的错误处理
在TypeScript中,`async`和`await`是处理异步操作的语法糖,能够让异步代码看起来像同步代码。`async`函数返回的总是`Promise`对象。当`await`后跟的表达式为`reject`状态的`Promise`时,会抛出错误,需要通过`try/catch`、链式`.catch()`或外部`Promise`包装来处理错误,防止代码崩溃。
134 0
async和await的错误处理
|
4月前
|
JavaScript 前端开发 中间件
异步编程中使用 async/await 是否必须包含 try 和 catch 语句以实现错误处理?
异步编程中使用 async/await 是否必须包含 try 和 catch 语句以实现错误处理?
|
前端开发
promise中reject和catch处理上有什么区别
promise中reject和catch处理上有什么区别
168 0
|
7月前
|
前端开发 UED
【面试题】 async/await 函数到底要不要加 try catch ?
【面试题】 async/await 函数到底要不要加 try catch ?
【面试题】 async/await 函数到底要不要加 try catch ?
如何给所有的 await async 函数添加try/catch?
如何给所有的 await async 函数添加try/catch?