powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Объясните зачем надо генерировать иногда исключения с помощью throw ?
8 сообщений из 8, страница 1 из 1
Объясните зачем надо генерировать иногда исключения с помощью throw ?
    #32763484
Колобок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зачем плодить исключения? Их же надо обработать и все.

Приведите пример ,когда это в натуре нужно.
...
Рейтинг: 0 / 0
Объясните зачем надо генерировать иногда исключения с помощью throw ?
    #32763507
olk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну например, когда логически у тебя приложение разнесено на несколько уровней
т.е. допустим DataLayer и PresentationLayer
на уровне DL ты ловишь исключение, но для его обработки тебе нужен интерактив от пользователя (который находиться в PL), тогда ты бросаешь
исключение (trhow) и вылавливаешь его уже в PL ...
...
Рейтинг: 0 / 0
Объясните зачем надо генерировать иногда исключения с помощью throw ?
    #32763533
Колобок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ты хочешь сказать, что это нужно чтобы разные части программы знали о друг друге по исключениям?
...
Рейтинг: 0 / 0
Объясните зачем надо генерировать иногда исключения с помощью throw ?
    #32763557
Фотография greenapple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это используется, например, в случае, если ты делаешь компонент, которым будут пользоваться другие люди. Например, ты не можешь закрыть у себя в коде такую ошибку, как несуществующий файл. Ты можешь ее обработать, но обязан вывести ее наружу, не понижая ранга, иначе никто не узнает в чем проблема. Второй момент: формализация интефейсов и логики. Выдачу информации об ошибках, помимо собственно обработки, можно изменить в контексте конкретной задачи. Например, файл есть, но не xml, а какая-то муть, xml, но не валидный, xml, но в нет нет ни одного потомка у корня, или xml но все потомки не те что нужно. Тут можно развививать, а можно просто написать что-то вроде "неверный формат ...", но тогда ведь снаружи не понять что конкретно не так.
...
Рейтинг: 0 / 0
Объясните зачем надо генерировать иногда исключения с помощью throw ?
    #32763584
Колобок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
...
Рейтинг: 0 / 0
Объясните зачем надо генерировать иногда исключения с помощью throw ?
    #32763798
olk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КолобокТы хочешь сказать, что это нужно чтобы разные части программы знали о друг друге по исключениям?
Нет не много не так :))
Допустим у меня есть универсальный Data Layer , для работы с какой либо БД,
он может использоваться как WinForms так и WebForms,
теперь допусти простейшая ошибка "нет соединения с базой данных",
как мне ее обработать в обоих Presentation Layer-ах ?
можно конечно вернуть код ошибки и дальше попробовать по нему определить,
но ведь проще бросить исключение и обработать его уже в соответствующем
PL ...
...
Рейтинг: 0 / 0
Объясните зачем надо генерировать иногда исключения с помощью throw ?
    #32764112
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КолобокЗачем плодить исключения?
Не совсем понятно, что ты имеешь в виду под словом "плодить".

Да, и еще как дополнение ко всему вышесказанному - у меня есть проект, в котором с помощью исключений передается не ошибка, а результат работы процедуры, вызываемой в том же проекте через сторонний прокси, не умеющий возвращать требуемые результаты.

--
WBR, Roman S. Golubin
ICQ UIN: 63253392
...
Рейтинг: 0 / 0
Объясните зачем надо генерировать иногда исключения с помощью throw ?
    #32802930
3D Monstr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КолобокЗачем плодить исключения?

Приведу пример. У меня в приложении динамически создаётся куча взаимодействующих обектов разных типов. Количество и состав объектв заранее неизвстны. Если один объект кидает эксепшн, то попробуй найди этот объект, ведь есть и наведённые эксепшены. А приложение должно указывать именно на первый обект.
Я написал код, благодаря которому узнаю первый объект, который кинул эксепшн :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
/// <summary>
/// Throws exception linked with object
/// </summary>
/// <param name="o">The linked object</param>
/// <param name="e">The parent exception</param>

public static void ThrowException(object o, Exception e)
{
	if (e is DiagramException)    // Если эксешен кинут другим объектом
	{
		throw e;             // Кидай его дальше
	}
        throw new DiagramException(o, e); // Кидай эксепшн с прикреплённым 
                                                             // объектом
}

...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Объясните зачем надо генерировать иногда исключения с помощью throw ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]