You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PureScript中指定退出码?非异常方式实现报错退出

如何在PureScript中指定进程退出码

好问题!你遇到的情况很典型:直接让main返回Int并不会改变进程的退出码,因为PureScript默认的运行时不会把这个返回值映射到Node.js的进程退出状态上。要在不抛出异常的情况下让程序以指定错误码退出,你需要借助Node.js的API来实现。

解决方案步骤:

  1. 添加依赖包:首先需要引入node-process包,它提供了访问Node.js process模块的PureScript绑定。在项目目录下运行:

    pulp add node-process
    
  2. 修改你的代码:导入exit函数并在main中调用它来指定退出码。这里我们用最新的Effect类型(PureScript 0.15+推荐使用,替代旧的Eff):

    module Main where
    
    import Effect (Effect)
    import Effect.Console (log)
    import Node.Process (exit)
    
    main :: Effect Unit
    main = do
      log "Hello sailor!"
      exit 137 -- 这里指定你想要的退出码
    

为什么原来的代码不生效?

你之前的main返回Int,但这个值只是Eff计算的结果,pulp的运行时并不会把它传递给Node.js的process.exit()方法——所以进程默认会以状态码0退出。而exit函数则直接调用了Node.js的原生API,能直接控制进程的退出状态,而且不会触发异常。

内容的提问来源于stack exchange,提问作者Hernan Rajchert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:12:53