Аватар для Jman
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860

Передача ошибки из библиотеки DAL со стороны сервера к клиенту

19.06.2017, 12:50. Показов 887. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день всем! Задался вопросом, как можно пробросить ошибку со стороны сервера к клиенту? На стороне сервера есть библиотека DAL, которая работает с БД через EntityFramework. Мне необходимо отследить ошибки, которые возникают в DAL на уровне как сервера (передача отловленных ошибок в консоль), так и в клиентскую десктоп программу.
Один из методов, который взаимодействует с базой.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  public static void Add(NoteEntity ne)
        {
            using(DataBaseContext dbcon = new DataBaseContext())
            {
                try
                {
                    dbcon.Notes.Add(ne);
                    dbcon.SaveChanges();
                }
                catch (Exception err)
                {
                   throw new Exception(err.Message); /// Тут непонятно, что необходимо делать
                }
               
            }
        }
Предполагаю:
a - создать глобальную публичную текстовую переменную и ее вызывать, где нужно. Но чувствую что это как бы ерунда.
б - создать отдельный класс? Туда пробрасывать исключения?

Может у кого есть пример, как это сделать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.06.2017, 12:50
Ответы с готовыми решениями:

Передача данных с сервера к клиенту
Добрый день! При передаче данных функцией SendNetworkString, на клинте строка принимается по частям. не понимаю в чем может быть...

Передача изображения от сервера к клиенту
Сервер: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; ...

Передача вектора от сервера клиенту
Логика задания такая: клиент посылает серверу, скажем, дату, а тот находит все детали, сделанные на разных предприятиях в этот день и...

2
22 / 20 / 3
Регистрация: 12.10.2016
Сообщений: 62
19.06.2017, 13:21
Лично я всегда любой ответ от сервера оборачиваю в класс, в котором есть поле для хранения результата запроса и поле с ошибкой, куда скидываю, например, исключения. Ну примерно так

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static WrappedResponse<T> WrapResponseWithPayload<T>(this Controller cntrl, Func<T> func)
        {
            var response = new WrappedResponse<T>();
            try
            {
                response.Payload = func.Invoke();
                response.IsSucceeded = true;
            }
            catch (Exception e)
            {
                response.IsSucceeded = false;
                response.Error = e.Message;
            }
 
            return response;
        }
Можно, конечно, докрутить и передавать типы ошибок, чтобы клиентская сторона могла разделить как обрабатывать разные ошибки. Будь то валидация или банальный NullRef

Добавлено через 6 минут
А ещё можно почитать вот это http://enterprisecraftsmanship... ut-errors/

Но надо будет ещё монаду для обработки исключений дописать)
2
 Аватар для Jman
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
26.06.2017, 09:20  [ТС]
Скажите, а если пробрасывать (ServiceModel) FaultException на сервере, а на клиенте оборачивать в try-catch как обычный exception, будет работать такой вариант?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.06.2017, 09:20
Помогаю со студенческими работами здесь

Передача сообщения с сервера клиенту
Здравствуйте! Я только начинающий программист, пишу програмку для интернет клуба. И вот у меня два вопроса: 1) Подскажыте как можно на...

Передача массива от сервера к клиенту
Каким образом можно передать массив от сервера к клиенту. Используется TServerSocket, TClientSocket. И возможно ли это вообще?

TCP/IP передача писем от сервера клиенту
Есть простейший почтовый сервер и почтовый клиент. Взаимодействие реализовано с помощью отправки констант, означающие например...

Передача значения от сервера к клиенту на ajax
Всем привет, подскажите как решить задачу: отправляю запрос на сервер при помощи jquery $.post, как принять на клиенте переменную php ?...

Передача файлов с Apache сервера к C++ клиенту
Как возможно (или это вообще возможно?) реализовать подключение к готовому Apache серверу из внешнего компьютера по средствам С++ и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru