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

如何在本地触发服务端错误以测试代码中的Catch逻辑?

本地触发Catch分支的几种实用方法

结合你的代码,给你几个快速触发错误分支的实操办法:

  • 篡改请求参数触发后端错误
    直接在submitPanel函数里修改传给TradingService.requestRenewal的参数,比如用无效的modelCode或者空的documentIds:
const submitPanel = () => {
  const documentIds = currentDocuments.map(doc => doc.documentId);

  setIsSubmitting(true);

  // 临时替换成无效参数
  TradingService.requestRenewal('不存在的模型编码', [])
    .then(() => {
      setShowSuccessConfirmation(true);
    })
    .catch(() => {
      setShowErrorModal(true);
      setShowSuccessConfirmation(false);
    })
    .finally(() => {
      setIsSubmitting(false);
    });
};

后端收到无效参数后通常会返回错误,自然进入Catch分支。

  • 本地Mock请求强制返回失败
    在组件文件的顶部临时重写TradingService.requestRenewal方法,让它直接返回一个reject的Promise:
// 在组件导入TradingService之后添加
TradingService.requestRenewal = () => Promise.reject(new Error('测试用错误'));

这样调用submitPanel时会直接触发Catch逻辑,不用依赖后端。

  • 用浏览器DevTools拦截修改响应
    打开浏览器F12进入开发者工具,切换到Network面板:
  1. 正常点击提交触发请求,找到requestRenewal对应的接口请求
  2. 右键选择「修改并重新发送」,把响应状态码改成500/404等错误码,或者修改响应体为错误格式
  3. 重新发送请求后,前端就会进入Catch分支
  • 模拟离线状态触发请求失败
    同样在DevTools的Network面板里,把网络状态切换成「离线」(Offline),然后点击提交按钮,请求会因网络故障失败,自动进入Catch分支。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 08:25:47