junisarfraz Ответов: 0

Обработка исключений архитектуры 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 с пользовательским (и, возможно, локализованным ) сообщением об ошибке. Наконец, вы ловите его в пользовательском интерфейсе и показываете сообщение пользователю

0 Ответов