ライブラリから例外をバブルアップする最良の方法は何ですか? インターフェイスを実装するとき、実装の詳細に関する例外で呼び出し元にバグを報告するのは良い習慣ですか、それとも悪い習慣ですか? すべての実装エラーが発信者から隠されている次の実装があります。私には、関心の分離を実装する最もクリーンな方法のように見えます。しかし、手つかずの例外をバブルアップする必要があることをどこでも読みました。
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);
}
}
}