我正在尝试改进我的 MVC.NET Core-fu,最终我的所有 Controller 中都出现了一堆像这样的方法(注意最外面的、一般的、重复的try-catch )。
[HttpPost]
public IActionResult DoSomething([FromBody] Thing thing)
{
try
{
if (...)
return Ok(thing);
else
return NotFound();
}
catch (Exception) { return BadRequest(); }
}
在我看来,我希望收到坏人请求,以防万一。现在,这向其他相当简单的 Controller 添加了大量代码,我怀疑以前有人想到过这一点并提出了解决方案。
我还没有找到这样的东西(并且我被告知过滤器在 Core 中的使用已经过时)。可能是因为我不熟悉正确的搜索键。
最佳答案
这对我来说似乎太过分了。许多方法不会执行可能失败的指令。对于那些极其罕见的情况,全局错误处理程序就足够了。
对于那些访问磁盘、数据库或执行可能引发异常的计算的方法(您可能应该首先避免这种情况),try...catch
block 是有意义的.
但即使在这些情况下,如果带有 try...catch
处理程序的方法调用另一个方法,则没有理由将处理程序放入另一个方法中。
关于c# - 在 Controller 中的每个方法中都有一个通用的 try/catch 是个好主意还是有更好的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48179086/