我正在将数据插入数据库,我猜这里可能会发生某种异常,可能不止一个?
通常我曾经写过这样的东西:
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时捕获异常的最佳实践是什么?
谢谢
欢呼
答案 0 :(得分:1)
您可以将SpecificExceptions
继承自另一个更高级别的DatabaseException
,并在一个catch子句中处理所有Database Exceptions
,例如
public class DatabaseException : Exception {}
public class MySpecificException : DatabaseException {}
public class YetAnotherDBSpecificException : DatabaseException {}
try
{
// insert data.
}
catch(DatabaseException dbEx)
{
// A database exception occured.
Console.Log(dbEx.Message);
}
catch(Exception other)
{
// Non db exception occured.
Console.Log(other.Message);
}