捕获异常我仍然无法处理

时间:2018-08-23 13:35:39

标签: c# exception exception-handling .net-core

我开发了用于CRUD操作的API。
它是.NET Core,我有一个全局异常处理程序,可以捕获所有异常,但我不在代码中处理。 记录具有堆栈跟踪的异常,并且API返回状态为500的常规错误消息。

现在可以说有人要向数据库中添加新产品。为此,我的API被称为。
现在,该产品(由于某种原因)没有有效的名称。我的业务逻辑检查产品的名称,并引发“ NameNotValid”异常和消息:“您尝试插入的产品没有有效名称。”

现在我可以做两件事:

  • 在我的控制器中捕获NameNotValid异常,然后将e.message返回给用户并进行日志记录。

  • 什么也不做,让我的全局异常处理程序捕获异常

第一种方法是更多的工作,而我看到的唯一好处是,用户将收到一条消息,说明他的请求出了什么问题。

如果我根本没有捕获到异常,则全局处理程序将写入日志,并且用户将仅获得“发生了错误”。

是否有最佳实践来处理这种情况?
我的一般问题是:

”如果我抛出异常,但无法很好地“处理”它,并将操作保存到其中之一 上层,我应该抓住吗?还是我应该一直使用 全局异常处理程序?”

0 个答案:

没有答案