Quantcast
Channel: Форум программистов и сисадминов Киберфорум
Viewing all articles
Browse latest Browse all 514745

Организация собственного исключения и передача в него исходного исключения - C# для начинающих

$
0
0
Для обработки исключений при работе с БД я создал собственное исключение:
:

[Serializable]
public class SQLEntityException : ApplicationException
{
    public SQLEntityException() { }
    public SQLEntityException(string message) : base(message) { }
    public SQLEntityException(string message, Exception ex) : base(message) { }
    protected SQLEntityException(System.Runtime.Serialization.SerializationInfo info,
        System.Runtime.Serialization.StreamingContext contex)
        : base(info, contex) { }
 
    //Код ошибки
    public int SQLCENativeError { get; set; }
    //Название  таблицы при работе с которой возникает исключение
    public string SQLTableName { get; set; }
    //Идентификатор строки в таблице (при переименовании или удалении)
    public int SQLEntityID { get; set; }
    //Значение параметра (при переименовании или удалении)
    public string SQLEntityName { get; set; }
    //Тип операции (добавление, удаление, переименование)
    public DBOperationType OperationType { get; set; }
}

Применение исключения при создании новой записи

:

public override int CreateRecord(MainTableStruct mdbs)
{
    int i = -1;
    SqlCeCommand _cmd = new SqlCeCommand();

    _cmd = (SqlCeCommand)GetSqlCommand(mdbs);
    if (SQLCeCon.State == ConnectionState.Closed)
    {
        SQLCeCon.Open();
    }
    try
    {
        i = _cmd.ExecuteNonQuery();
    }
    catch (Exception ex)
    {
        ExceptionHandler.SQLEntityException exc = new ExceptionHandler.SQLEntityException();
        exc.SQLCENativeError = ((SqlCeException)ex).NativeError;
        exc.SQLTableName = "MainTableSqlCe";
        exc.SQLEntityID = -1;
        exc.SQLEntityName = "value";
        exc.OperationType = ExceptionHandler.DBOperationType.AddToDB;
        throw exc;
    }
    finally
    {
        SQLCeCon.Close();
    }

    return i;
}

Таким образом я использую свое исключение для определения места возникновения исключительной ситуации.

У меня возник вопрос... Как мне добавить в свое исключение исходное исключение?

Viewing all articles
Browse latest Browse all 514745

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>