Przeglądaj źródła

🐛 fix(ui): 修复前端错误处理逻辑中的try-catch嵌套问题

- 修复创建公司错误处理:使用变量存储错误消息,避免throw被外层catch捕获
- 修复更新公司错误处理:同上修复逻辑
- 修复删除公司错误处理:同上修复逻辑
- 现在能正确显示API返回的具体错误信息(如"公司名称在该平台下已存在")
- 保留HTTP状态码信息便于调试

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
yourname 1 tydzień temu
rodzic
commit
61ef649a61

+ 12 - 6
allin-packages/company-management-ui/src/components/CompanyManagement.tsx

@@ -88,12 +88,14 @@ const CompanyManagement: React.FC = () => {
       const res = await companyClientManager.get().createCompany.$post({ json: data });
       if (res.status !== 200) {
         // 尝试从API响应中提取错误信息
+        let errorMessage = `创建公司失败 (${res.status})`;
         try {
           const errorData = await res.json();
-          throw new Error(errorData.message || '创建公司失败');
+          errorMessage = errorData.message || errorMessage;
         } catch {
-          throw new Error('创建公司失败');
+          // 如果无法解析JSON,保持默认错误消息
         }
+        throw new Error(errorMessage);
       }
       return await res.json();
     },
@@ -116,12 +118,14 @@ const CompanyManagement: React.FC = () => {
       });
       if (res.status !== 200) {
         // 尝试从API响应中提取错误信息
+        let errorMessage = `更新公司失败 (${res.status})`;
         try {
           const errorData = await res.json();
-          throw new Error(errorData.message || '更新公司失败');
+          errorMessage = errorData.message || errorMessage;
         } catch {
-          throw new Error('更新公司失败');
+          // 如果无法解析JSON,保持默认错误消息
         }
+        throw new Error(errorMessage);
       }
       return await res.json();
     },
@@ -143,12 +147,14 @@ const CompanyManagement: React.FC = () => {
       });
       if (res.status !== 200) {
         // 尝试从API响应中提取错误信息
+        let errorMessage = `删除公司失败 (${res.status})`;
         try {
           const errorData = await res.json();
-          throw new Error(errorData.message || '删除公司失败');
+          errorMessage = errorData.message || errorMessage;
         } catch {
-          throw new Error('删除公司失败');
+          // 如果无法解析JSON,保持默认错误消息
         }
+        throw new Error(errorMessage);
       }
       return await res.json();
     },