C# 例外处理程序可以';捕获响应异常
我正在dotnetcore上创建一个webapi应用程序,试图捕获一个异常,但它不起作用C# 例外处理程序可以';捕获响应异常,c#,asp.net-core,.net-core,C#,Asp.net Core,.net Core,我正在dotnetcore上创建一个webapi应用程序,试图捕获一个异常,但它不起作用 using Microsoft.AspNetCore.Mvc; using System; namespace WebApplication1.Controllers { public class TestModel { public long Num { get; set; } public decimal TotalCost { get; set; }
using Microsoft.AspNetCore.Mvc;
using System;
namespace WebApplication1.Controllers
{
public class TestModel
{
public long Num { get; set; }
public decimal TotalCost { get; set; }
public decimal Avg => Math.Round(TotalCost / Num, 4);
}
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
// GET api/values
[HttpGet]
public ActionResult<TestModel> Get()
{
return new TestModel { Num = 0, TotalCost = 1 };
}
}
}
使用Microsoft.AspNetCore.Mvc;
使用制度;
命名空间WebApplication1.Controllers
{
公共类测试模型
{
公共长数值{get;set;}
公共十进制总成本{get;set;}
公共十进制平均值=>Math.Round(TotalCost/Num,4);
}
[路由(“api/[控制器]”)]
[ApiController]
公共类值控制器:控制器库
{
//获取api/值
[HttpGet]
公共行动结果获取()
{
返回新的TestModel{Num=0,TotalCost=1};
}
}
}
我期望异常的输出,但它显示nomal它不会引发异常,直到您调用.Avg:
\u=l.Avg代码>因此实际代码被触发,并将抛出一个DivideByZeroException
异常
[HttpGet]
public ActionResult<TestModel> Get()
{
var l = new TestModel { Num = 0, TotalCost = 1 };
_ = l.Avg;
return l;
}
[HttpGet]
公共行动结果获取()
{
var l=newtestmodel{Num=0,TotalCost=1};
_=l.平均值;
返回l;
}
Hi,您没有试图捕获任何异常:)您的try
和catch
在哪里?在启动时,我使用了一个错误处理中间件,但请求管道不是发生此错误的范围,但在复杂的项目中,我们不能这样做。这个异常发生在返回时,而不是在操作时,但这没关系,这只是为了测试目的,不是吗?我以为你只是想测试你的错误处理中间件。