Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для Jman
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860

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

19.06.2017, 12:50. Показов 876. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений в EXE. Здесь описаны базовые шаги для старта программирования с помощью CMake. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru