从库中冒泡异常的最佳方法是什么?当我实现一个接口时,用与我的实现细节有关的异常来调试调用方是好还是坏的做法?我有以下实现,其中每个实现错误都隐藏在调用方之外。在我看来,它是实现关注点分离的最干净的方式。但是我到处都读到你需要冒泡未触及的异常。
public class OneException : Exception
{
public OneException()
{
}
public OneException(string message): base(message)
{
}
public OneException(string message, Exception innerException)
: base(message, innerException)
{
}
}
我的库实现:
public class MyLib : IMyLib
{
public int Divide(int a, int b)
{
try
{
if (b == 1) throw new OneException();
return a / b;
}
catch (OneException e)
{
throw new ApplicationException("Please do not divide by 1", e);
}
catch (Exception e) // divide by zero and others
{
throw new ApplicationException("Oops", e);
}
}
}