【问题标题】:Canonical way to exit async scripts with non-zero code使用非零代码退出异步脚本的规范方法
【发布时间】:2017-10-13 14:42:50
【问题描述】:

假设你有一个看起来像这样的脚本

async function main() {
  await somethingThatCanFail()
}

main()

目前以我正在做的非零代码退出

main()
  .then(() => console.log('success message and stuff')
  .catch(function(err) {
    console.error(err)
    process.exit(1)
  })

因为throw new Error(err) 在承诺中是徒劳的。但是,这感觉有点 hacky,我想知道是否有更标准的方法来做到这一点。

【问题讨论】:

  • process.exit() 正是您想要结束进程的方式。根本没有什么“hacky”。您遇到了一个错误,决定要中止该过程并结束该过程。我会认为未捕获的异常更加hacky。
  • 我认为这正是您应该做的,直到有一个标志使未处理的拒绝中止该过程。不过你已经可以simulate that了。
  • 好的,谢谢@jfriend00 和Bergi

标签: javascript node.js error-handling


【解决方案1】:

process.exit() 正是如果你想结束进程,你应该如何结束它。根本没有什么“hacky”。

您正确地处理了一个错误,决定因为该错误而中止该过程,并以记录的方式结束了该过程。我会认为未捕获的异常更加hacky。

如果您认为未处理的异常可能会丢失,您可以在退出前向控制台输出任何您想要用于诊断目的的信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-08
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    • 2020-02-19
    • 1970-01-01
    相关资源
    最近更新 更多