私は自分の例外をWindowsフォームアプリケーションで作成したいと思っています。私はいくつかのデータをデータベースに追加しようとしています。Cでカスタム例外を作成する方法
コード:
try
{
string insertData = string.Format("INSERT INTO " + constants.PIZZABROADCASTTABLE +
" VALUES(@starttime,@endtime,@lastupdatetime,@applicationname)");
sqlCommand = new SqlCommand(insertData, databaseConnectivity.connection);
sqlCommand.Parameters.AddWithValue("@starttime", broadcastStartDateTime);
sqlCommand.Parameters.AddWithValue("@endtime", broadcastEndDateTime);
sqlCommand.Parameters.AddWithValue("@lastuptime", currentDateTime);
sqlCommand.Parameters.AddWithValue("@applicationname", txtApplicationName.Text);
sqlCommand.ExecuteNonQuery();
}
catch (DataBaseException ex)
{
MessageBox.Show(ex.Message);
}
ここで私は自分の例外を作成しました。ここでは、SqlExceptionをキャプチャするために@lastupdatetime
の代わりにスカラー変数@lastuptime
を指定しました。
ここは私のDatabaseExceptionクラスです。ここで
class DataBaseException : Exception
{
public DataBaseException(string Message)
: base(Message)
{
}
public DataBaseException(string message, Exception innerException)
: base(message, innerException)
{
}
}
プログラムを実行している間、それは
sqlCommand.ExecuteQuery();
でエラーを示していますが、エラーをキャプチャし、メッセージボックスのテキストは表示されません。私は何かが間違っていることを知っている。カスタム例外処理を作成したのが正しいかどうかはわかりません。
誰でも助けてくれますか?前もって感謝します。
また、例外を[Serializable]としてマークし、さらに2つのコンストラクタ(シリアル化のための非argコンストラクタと、カスタムシリアル化のargsとしてのSerializationInfoとStreamingContextを含むコンストラクタ)を追加する必要があります。 – Daniel