Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Ответы:

Ответить   Ivan Mikheikin (#56963)

 

Hello Ivan,

Saturday, January 17, 2004, 2:49:52 PM, you wrote:

Спасибо, за ликбез! Очень признателен...

По-поводу исключений: Но ведь описания болков try, catch(для С++) тоже
занимает место в коде... Как я понял можно какой-то большой кусок кода
заключить в try, а после него расписать catch-и с возможными
исключениями(описанными где-то в другом месте)?

P.S. А то же деление на ноль, тоже придется проверять, чтобы
сгенерировать ошибку (throw)? Или я что-то недопонял...

Velora

Ответить   Sat, 17 Jan 2004 23:11:42 +0200 (#57531)

 

Да, действительно, всё это сделано для того, чтобы не проверять
каждый вызов какой-то функции из какой-то библиотеки на ошибку,
а сразу вызывать их в блоке try{} и потом уже catch'ем ловить ошибки.
Можно не расписывать catch'и, а сделать классы
исключений, унаследованные от одного класса и ловить этот -
родительский класс. (см. Страуструпа)

В это конкретном случае смотря что ты хочешь получить и смотря какую
реализацию исключений используешь ;)

Можно ловить hardware exceptions, (среди которых
STATUS_FLOATING_DIVIDE_BY_ZERO и STATUS_FLOATING_DIVIDE_BY_ZERO
- думаю назначение оных понятно :) для этого используются
"расширения языка C от микрософт" ;) (см. MSDN)

Можно использовать стандартную библиотеку C++ - там есть много чего
интересного. Правда насчет деления на 0 надо уточнить.. Но то, что
хардварные исключения она не ловит это точно.

Если же пишешь свои некие мега-вычисления ;) то желательно бы передать
кроме ошибки деления на 0 и некую информацию - почему это произошло, в
каком месте, с какими данными. Тут уже самому надо все проверять и
выбрасывать исключения своего типа.

Ответить   Ivan Mikheikin Sun, 18 Jan 2004 23:39:10 +0300 (#57876)

 

Нет - идея в том, чтобы нужный участок кода был вызван ТОЛЬКО В ТОМ СЛУЧАЕ, ЕСЛИ
ПРОИЗОШЛО деление на ноль. То есть, Вы должны только написать, что делать в том
случае, когда произошло деление на ноль (хотя бы знаменатель изменить принудительно,
или еще что). В противном случае произойдет то, что и происходит - аварийное
завершение программы - это код по умолчанию
С уважением,
Борис Сурин, surin_***@m*****.ru
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 19 Jan 2004 08:32:47 +0300 (#58008)

 

В сообщении от Суббота 17 Январь 2004 23:11 Velora написал:

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

Да, без сомнения - один try-блок, и много разных catch.

Многие исключения генерируются без явного указания throw (вернее, throw
указан в реализации библиотечного кода). Например, то же исключение
деление на ноль произойдет, без тобой написаного throw.

С уважением.
Дима Федотов.
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Dima Fedotov Mon, 19 Jan 2004 10:10:46 +0200 (#58122)

 

Конечно, можно, но зачем? Освойте эту технику - потом Вас от нее зауши не оттащишь
:))
Если серьезно,то программа с обработкой исключений работает быстрее, так как
не надо постоянно проверять допустимость аргументов, правильность вызова функций
и тому подобное. Кроме того, если Вы не будете понимать, как писать обработку
исключений - не сможете читать умные книги и программы - на С++ - это давно уже
стандарт
С уважением,
Борис Сурин, surin_***@m*****.ru
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 19 Jan 2004 08:25:49 +0300 (#58001)