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);
}
난 내 자신의 예외를 만들었습니다. 여기에 @lastupdatetime
대신 SqlException을 캡처하는 스칼라 변수 @lastuptime
이 주어졌습니다.
여기에 내 DatabaseException 클래스가 있습니다.
class DataBaseException : Exception
{
public DataBaseException(string Message)
: base(Message)
{
}
public DataBaseException(string message, Exception innerException)
: base(message, innerException)
{
}
}
다음은 프로그램을 실행하는 동안이
sqlCommand.ExecuteQuery();
에서 오류를 표시하지만 오류를 캡처하고 메시지 상자의 텍스트가 표시되지 않습니다. 나는 내가 잘못한 것을 알고있다. 나는 사용자 정의 예외 처리를 만든 것이 옳은 것인지 잘못되었는지를 모른다.
아무도 도와 줄 수 있습니까? 미리 감사드립니다.
또한 예외를 [Serializable]로 표시하고 두 개의 생성자 (직렬화를위한 인수가 아닌 생성자 및 사용자 정의 직렬화를위한 인수로 SerializationInfo 및 StreamingContext가있는 생성자)를 추가해야합니다. – Daniel