【发布时间】:2019-10-15 14:08:08
【问题描述】:
我正在向数据库中插入数据,我猜这里可能会出现某种异常,可能不止一个?
通常我曾经写过这样的东西:
try
{
//Execution code
}
catch(Exception ex)
{
// log error and throw it
}
我认为最好捕获一些特定的异常而不是 (Exception ex) 这样的东西:
try
{
// my possibly bad code which inserts data to db
var someEntity = CreateEntityFromDTO(someDTO);
_context.SomeThing.Add(someEntity);
await _context.SaveChangesAsync(cancellationToken);
}
catch(MySpecificException mse)
{
// log error and throw it
}
在向 db 插入数据时捕获异常的最佳实践是什么?
谢谢
干杯
【问题讨论】:
-
您在这里询问什么“最佳实践”?如果您想捕获特定异常以以特定方式响应,当然鼓励您这样做。究竟是什么问题?
-
没有最佳实践。如果在您的情况下捕获一般
Exception效果最好,那么就这样做。否则,请调整您的异常处理行为以处理更具体的异常类型。 -
您是否想在其他地方捕获任何类型的异常?如果没有,就在那里抓住它们。不过,您可以为您的特定类型使用不同的处理程序:
try { /* do stuff */ } catch (MySpecificException mse) { /* handle mse */ } catch (Exception ex) { /* handle anything else */ }。但不要更具体,除非这能解决您遇到的某些特定问题。
标签: c# exception .net-core try-catch