次の例外処理方法は正しいですか?私は、エラーを記録し、最終的に電子メールでログファイルを送信するのが難しいと思っています。 どこにエラーを記録して電子メールを送信するコードを記述しますか?例外ログ記録および電子メールの送信
大きな問題は、SomeClass1
で例外が生成されたときに2回記録されることです.SomeClass2
から2回目です。単一のカスタム例外タイプ(この例ではSomeException
)を作成し、発生するたびにSystem.Exception
をラップすることをお勧めしますか?
また、try-catchが連鎖しているときにエンドユーザーにエラーメッセージを表示する方法とタイミングについて混乱しています。
class SomeClass1
{
public static DataExtract(string sourcepath)
{
try
{
OleDbConnection oledb = new OleDbConnection();
oledb.ConnectionString = "someconnectionstring";
CompanyOLEDB.Open();
}
catch (Exception e)
{
throw new CustomException(e);
}
}
}
class SomeClass2
{
private void SomeMethod()
{
try
{
// some code
// some code
SomeClass1.DataExtract()
}
catch (Exception e)
{
throw new CustomException(e);
}
}
}
public class CustomException : Exception
{
protected CustomException() { }
public CustomException(Exception e)
{
Log(e);
}
public CustomException(ExceptionType type)
{
this.Data.Add("Type", type);
this.Data.Add("Message", "No message specified");
}
public CustomException(ExceptionType type, string message)
{
this.Data.Add("Type", type);
this.Data.Add("Message", message);
}
public static void Log(Exception e)
{
System.IO.File.WriteAllText(Logfile.txt", e.ToString());
}
public static void Sendmail()
{
ExceptionMail.Sendmail();
}
}
号はhttp://msdn.microsoft.com/en-us/library/ms229014.aspx –
が重複する可能性を参照してください。 [Windowsフォームアプリケーションの例外処理のベストプラクティス?](http://stackoverflow.com/questions/183589/best-practice-for-exception-handling-in-a-windows-forms-application) –