node.js - Deno:如何处理异常

标签 node.js typescript exception deno

在 nodejs 中,我们可以处理这样的异常:

process.on('uncaughtException', (err, origin) => {
  fs.writeSync(
    process.stderr.fd,
    `Caught exception: ${err}\n` +
    `Exception origin: ${origin}`
  );
});

setTimeout(() => {
  console.log('This will still run.');
}, 500);

// Intentionally cause an exception, but don't catch it.
nonexistentFunc();
console.log('This will not run.');
deno 的替代方案是什么?
我知道有 window.onunload ,但它不处理错误

最佳答案

Deno 总是死于未捕获的异常,这是一个设计选择(实际上是一个核心选​​择)。您不能为您的错误放置全局处理程序,因为有时您的异常可能是不可恢复的,并且可能会导致改变应用程序整体状态的副作用,总而言之,未处理的异常处理程序意味着问题。到目前为止,NodeJS 不鼓励对异常进行全局处理,因此请不要在将来在该平台上依赖此类代码。
话虽如此,如何处理拒绝? try/catch/finally用于同步代码。 .then/.catch/.finally对于异步代码。
编辑:您可以使用的一个有趣的资源是 unhandledRejection事件,它是一个用于实现各种清理的事件,意味着关闭打开的连接、释放资源、关闭文件等。这不会阻止异常终止程序,但会给你空间来防止对程序终止的次要影响。
https://developer.mozilla.org/en-US/docs/Web/API/Window/unhandledrejection_event

关于node.js - Deno:如何处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64871554/

相关文章:

javascript - 在azure上部署node.js + socket.io后端/服务器

typescript - 将泛型类型限制为 Typescript 中的几个类之一

typescript - 类型 'DocumentData' 不可分配给类型 'IProduct'

java - 使用 Unsafe.getUnsafe().throwException 抛出异常

validation - Kotlin:在界面中指定输入约束

node.js - 如何为 pm2 指定端口号

node.js - 在express.js中使用jsonp作为node.js

node.js - nodejs请求模块解析body

typescript - 如何从类本身访问类实例成员和方法

PHP,异常与常规类有何不同