如何在本地触发服务端错误以测试代码中的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面板:
- 正常点击提交触发请求,找到
requestRenewal对应的接口请求 - 右键选择「修改并重新发送」,把响应状态码改成500/404等错误码,或者修改响应体为错误格式
- 重新发送请求后,前端就会进入Catch分支
- 模拟离线状态触发请求失败
同样在DevTools的Network面板里,把网络状态切换成「离线」(Offline),然后点击提交按钮,请求会因网络故障失败,自动进入Catch分支。
内容的提问来源于stack exchange,提问作者meWho
相关产品推荐
相关产品推荐

