<分区>
我想知道将异常从一种方法传递到另一种方法的正确方法是什么。
我正在做一个项目,它分为表示层(web)、业务层和逻辑层,错误(例如 SqlExceptions)需要沿着链向下传递,以便在出现问题时通知 web 层。
我见过 3 种基本方法:
try
{
//error code
}
catch (Exception ex)
{
throw ex;
}
(简单地重新抛出)
try
{
//error code
}
catch (Exception ex)
{
throw new MyCustomException();
}
(抛出一个自定义异常,这样就不会传递对数据提供者的依赖)
然后简单地
//error code
(什么都不做,让错误自己冒出来)
当然,catch block 中也会发生一些日志记录。
我更喜欢方法 3,而我的同事使用方法 1,但我们都无法真正提出原因。
使用每种方法的优点/缺点是什么?有没有更好的方法我不知道?是否有公认的最佳方式?