Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
189 / 144 / 27
Регистрация: 02.05.2011
Сообщений: 467
1

Корректно ли добавлять обработчик исключений в библиотеку классов

30.01.2012, 12:31. Просмотров 1325. Ответов 4
Метки нет (Все метки)

Добрый день! У меня вопрос касающийся скорее архитектуры чем самого языка.
Пишу ОРС клиент с использованием библиотеки OPCDAAUTO.dll. Для реализации именно тех функций которые нужны в моей задаче написал dll opcWrapper - библиотека, которая содержит класс обёртку над упомянутой выше dll.
Подскажите, разумно ли обрабатывать исключения внутри моего класса, или при возникновении исключительной ситуации выбросить это исключение повторно, чтобы выше по стэку вызова его могли обработать??

вот пример кода:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
public class_OPCWrapper
{
    private opcdaauto.class myClassA; //класс из библиотеки opcdaauto.dll
    
    public bool SetConnection (string ServerName, string PCip)
    {
        try { myClassA.Connect(ServerName, PCip); return true; }
        catch 
            {
                return false;
            }
    } 
}
    ////////////////////////////////////////////////////////////////////////////
////////////или обрабатывать исключения выше///////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
 
public class_OPCWrapper
{
    private opcdaauto.class myClassA; //класс из библиотеки opcdaauto.dll
    
    public void SetConnection (string ServerName, string PCip)
    {
        myClassA.Connect(ServerName, PCip);
    } 
}
 
///////////в программе реализующей графический интерфейс
 
public formMain: Forms
{
     private OPCWrapper.class_OPCWrapper myClassA
     {
     public void btn1_mouseClick(object sender, EventArgs e)
         try 
         {
             myClassA.SetConnection("Server1", "192.168.254.254");
         } 
         catch (Exception exc)
         {
             //код обработки, например MessagBox
         }
     }
}
Главное что меня интересует, это не тип исключения, а, например, установилось ли соединение. Поэтому не имеет смысла сам тип исключения, а только событие да/нет.


Спасибо за советы!!!

Добавлено через 2 минуты
Не надо меня направлять на МСДН пожалуйста) Мне интересен опыт грамотных программистов, а не описания на МСДН.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.01.2012, 12:31
Ответы с готовыми решениями:

Один обработчик исключений для всех наследуемых классов
Есть абкстрактный класс: ClientInfo у него есть абкстрактный метод: public abstract void...

Обработка исключений. Как организовать общий обработчик исключений?
У меня есть последовательность вызова методов для внесения данных в таблицу БД. Сам метод...

Обработчик исключений
Помогите нужно сделать, чтобы некорреектное поведение пользователя не вызывало вылет программы, а...

Обработчик исключений
Внутри класса должен быть реализован обработчик исключений.все возникающие ошибки нужно записать в...

4
2370 / 1832 / 330
Регистрация: 22.07.2011
Сообщений: 7,027
30.01.2012, 16:07 2
В конкретном примере при текущий постановке вопроса можно и локально обработать, а результат типа bool., это если тебя не интересует почему не получилось законнектиться.
А в общем плане, исключения общего характера обрабатываются в сквозной логике, или в логике конкретного слоя, это если информация из них как то влияет на приложение, нужны протоколы, дружественные уведомления и т.п
1
189 / 144 / 27
Регистрация: 02.05.2011
Сообщений: 467
30.01.2012, 18:13  [ТС] 3
Цитата Сообщение от sau Посмотреть сообщение
А в общем плане, исключения общего характера обрабатываются в сквозной логике, или в логике конкретного слоя, это если информация из них как то влияет на приложение, нужны протоколы, дружественные уведомления и т.п
Я абсолютно ничего не понял)
0
2370 / 1832 / 330
Регистрация: 22.07.2011
Сообщений: 7,027
30.01.2012, 18:30 4
Ну я тут имел ввиду архитектуру обработки исключений вроде аспектно ориентированного подхода или патерны вроде Chain of Responsibility, ну или можно фреймворк заюзать типа:
http://msdn.microsoft.com/en-us/library/ff664352(v=pandp.50).aspx, в общем какой подход удобнее зависит от архитектуры конкретного приложения(ий)., но поскольку у тебя приложение не большое и скорей всего без каких либо заморочек то сойдет простой bool )
1
189 / 144 / 27
Регистрация: 02.05.2011
Сообщений: 467
30.01.2012, 20:24  [ТС] 5
Приложение небольшое но в будущем я не буду этим ограничиваться) Так что спасибо за информацию!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.01.2012, 20:24

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Обработчик исключений
Помогите написать обработчик исключений по заданию: Опишите функцию анализа номера телефона,...

Корректно ли так добавлять изображение
Добрый день! Корректно ли таким путем добавлять изображения? var img1 =...

Создать, обработчик исключений
Класс «квадрат», включает в себя координаты левого верхнего и правого нижнего углов и функцию...

Обработчик исключений в POP3
Здравствуйте. Создаю чтото типо почтового клиента. Код работает но есть одна маленькая проблемам....

Свой обработчик unexpected исключений
что-то не получается. class Exp { }; class Exp1 { }; void UnThrow() { std::cout << "my...

Как правильно добавлять обработчик событий
Как правильно добавлять обработчик событий? Я научился делать это вручную. В файле...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.