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

如何为重复添加同一促销优惠码设置自定义错误信息(非路由装饰)

无需修改/checkout/promotion/add路由的自定义错误方案

针对lineItemNotStackable异常的自定义错误提示,完全可以不用改动目标路由,以下两种方案直接可行:

后端全局异常拦截

在系统的全局错误处理层添加异常匹配规则:

  • 配置全局中间件/拦截器,监听所有抛出的异常,当捕获到lineItemNotStackable类型的异常时,直接返回你想要的自定义错误文本(比如“同一促销活动的优惠码不能重复添加”),覆盖默认的“Ops something went wrong”提示。
  • 举个简单的Node.js/Express示例:
app.use((err, req, res, next) => {
  if (err.name === 'lineItemNotStackable') {
    return res.status(400).json({ message: '同一促销活动的优惠码无法重复添加' });
  }
  res.status(500).json({ message: 'Ops something went wrong' });
});
  • 其他框架(如Spring、Django)也有对应的全局异常处理机制,只需在对应模块中添加该异常的映射逻辑即可。

前端错误响应拦截

如果前端能拿到后端返回的异常标识(比如error code或错误名称),可以在请求响应环节做处理:

  • 在调用添加优惠码接口的回调或拦截器中,判断返回的错误类型是否为lineItemNotStackable,如果是则展示自定义提示,否则显示默认错误信息。
  • 举个前端示例(基于axios):
axios.post('/checkout/promotion/add', promoCode)
  .catch(err => {
    if (err.response?.data?.error === 'lineItemNotStackable') {
      alert('同一促销活动的优惠码不能重复添加');
    } else {
      alert('Ops something went wrong');
    }
  });

两种方案都不需要修改/checkout/promotion/add路由的原有代码,只需在全局错误处理或前端响应处理中添加匹配逻辑即可。

内容的提问来源于stack exchange,提问作者Martin Locke

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 22:28:15