如何正确处理前端React和后端.NET/C#上的错误/异常

7fhtutme  于 2023-05-30  发布在  .NET
关注(0)|答案(1)|浏览(215)

我的前端React在.NET/C#上与后端交互。
用户点击按钮并将int数字传递给后端。如果数字为正数,则没有问题,但如果它<0,则会导致异常。
我可以通过response.ok或response.status来处理来自后端的响应,但我不知道如何处理后端的错误。
React代码片段:

const requestCalculation = {
    calculate: (number) => {
      const url = `/calculator/calculate?input=${number}`
      return fetch(url).then(response => {
      if (response.ok) { return response.text() }
      throw new Error('Something went wrong');
    }).catch((error) => { console.log(error) });
  },
};

return <button onClick={
              try{var promise = requestCalculation.calculate(-1); }
              catch(error){
                throw new Error(error.message);
              }> Click <button />

.Net/C#代码片段(仅对应方法):

public int calculate(int input) {
if(input<0) throw new Exception("Negative numbers are not allowed");
            int[] res = new int[input];
            /*
      some calculation
            */
    return res[input];
}
qv7cva1a

qv7cva1a1#

在.NET中,你可以使用AddProblemDetails factory,这是微软的建议,用来描述API应该如何处理异常。要添加异常处理程序,您应该创建问题详细信息工厂,并在Program.cs中覆盖它。
This is an example如何使用
在React方面,你也可以做一些类似的事情

export abstract class YourExceptionHandler {
public static HandleException(error: Error) {
   //switch case stuff
}

相关问题