Обработка исключений архитектуры 3 уровня
у меня есть текстовый файл с фиксированной длиной данных текстовый файл строка есть
07010001090560000201711061250160000472100100000001090560298609999MMBSLR/2017000063/SBP/BI-MUAJJAL SLR ACC 000002017000063PKR10000000062872.16001.000000000000000062872.16OBBBBRRRRSDDDDDDDDVTTTTTTIQQQ00"
У меня есть класс модели, где у нас есть сеттер и сеттеры для модели.
namespace Model { public class FileData { private string _Transaction_ID; public String Transaction_ID { get { return _Transaction_ID; } set { _Transaction_ID= value; } } } public bool Save(Model.IBRFileData FileData) { this._Sql.AddInParameter(command, PARAM_Transation_ID, DbType.String, FileData.Transation_ID, #endregion try { this._Sql.ExecuteNonQuery(command); retunval = true; } catch (Exception ex) { log error to database retunval = false; } return retunval; }
Файловые данные вставляются в базу данных с помощью DAL . вопрос вот из интерфейса когда файловые данные вставляются в базу данных с помощью DAL если произошла ошибка уникального ограничения
тогда где я должен регистрировать это исключение ? я хочу сделать журнал исключений для каждой строки, которая вставлена в N db, и получить ошибку.
где я должен написать код для регистрации исключений в DAL или в коде позади, где данные вставляются один за другим через цикл?
Что я уже пробовал:
i have text file with fixed length data text file line is <pre>07010001090560000201711061250160000472100100000001090560298609999MMBSLR/2017000063/SBP/BI-MUAJJAL SLR ACC 000002017000063PKR10000000062872.16001.000000000000000062872.16OBBBBRRRRSDDDDDDDDVTTTTTTIQQQ00"
У меня есть класс модели, где у нас есть сеттер и сеттеры для модели.
namespace Model { public class FileData { private string _Transaction_ID; public String Transaction_ID { get { return _Transaction_ID; } set { _Transaction_ID= value; } } } public bool Save(Model.IBRFileData FileData) { this._Sql.AddInParameter(command, PARAM_Transation_ID, DbType.String, FileData.Transation_ID, #endregion try { this._Sql.ExecuteNonQuery(command); retunval = true; } catch (Exception ex) { log error to database retunval = false; } return retunval; }
Файловые данные вставляются в базу данных с помощью DAL . вопрос вот из интерфейса когда файловые данные вставляются в базу данных с помощью DAL если произошла ошибка уникального ограничения
тогда где я должен регистрировать это исключение ? я хочу сделать журнал исключений для каждой строки, которая вставлена в N db, и получить ошибку.
где я должен написать код для регистрации исключений в DAL или в коде позади, где данные вставляются один за другим через цикл?
Sinisa Hajnal
Вы ловите исключение как можно раньше и регистрируете его (в данном случае в DAL). В случае, если вам нужно сообщить пользователю, вы пузырите исключение до пользовательского интерфейса (после регистрации его). Пользовательский интерфейс должен поймать исключение и показать подходящую удобную для пользователя ошибку. Например, вы можете зарегистрировать исходную ошибку в DAL, снова поймать исключение в бизнес-логике и создать исключение ApplicationException с пользовательским (и, возможно, локализованным ) сообщением об ошибке. Наконец, вы ловите его в пользовательском интерфейсе и показываете сообщение пользователю