Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

обработка ошибок

3.2K
25 декабря 2006 года
Gazzy
38 / / 02.08.2006
как можно реализовать обработку исключительных ситуаций в пользовательских функциях? кроме try и catch...
63
25 декабря 2006 года
Zorkus
2.6K / / 04.11.2006
Если ты имеешь в виду - перехват исключений, то никак, по-моему, во-всяком случае, стандартными средствами.
Если в более широком смысле - исключительная ситуация, то для многих функций можно обрабатывать неприятные события типа невозможности открыть файл по возвр. ими значению, например
 
Код:
ifstream in("somefile");
if(!in) //файл не был открыт
{
}
1.8K
25 декабря 2006 года
Death Knight
139 / / 19.02.2006
DWORD GetLastError(VOID)
она возвращает код ошибки иногда может помочь.....
9
25 декабря 2006 года
Lerkin
3.0K / / 25.03.2003
Цитата: Death Knight
DWORD GetLastError(VOID)
она возвращает код ошибки иногда может помочь.....



Это если исключительно для Винды писать - то да.
Если имеются ввиду возможности языка, то Zorkus прав. А вообще, чем try, catсh и throw не устраивают?

309
25 декабря 2006 года
el scorpio
1.1K / / 19.09.2006
Считается, что try, catch, throw кушают много ресурсов для своей работы.
Зато у них есть несравнимое преимущество - принудительное сообщение об ошибке. Ведь если программист забудет (с кем не бывает) указать проверку результата функции, то в случае ошибки ситуация просто выйдет из под контроля. А вот throw явно переведёт программу к ближайшему catch.
63
25 декабря 2006 года
Zorkus
2.6K / / 04.11.2006
Цитата: el scorpio
Считается, что try, catch, throw кушают много ресурсов для своей работы.


Ну тогда, сори за оффтоп, небольшое лирическое отступление:) для автора.
Если кого-то не устраивают ресурсозатраты на обработку исключений - то можно понадеяться на грамотность кодинга и обойтись без них - или регулировать уровень безопаности. И выиграть в скорости.
Но если бы проверка была бы встроена в базовые операции - то ее не удалось бы отключить. Какие еще средства проверки требуются?

355
26 декабря 2006 года
<SCORP>
786 / / 21.10.2006
кроме этого есть глобальные функции обработчики, переопределив которые можно ловить ошибки. помню делал так при табуляции функции. тогда проверку надо было осуществлять на каждой итерации цикла и, есессно, try catch по скорости не удовлетворял. тогда нашёл ф-цию matherr_ (кажется так). но есть и другие -- обработчики деления нуль, ошибок распределения памяти и т.п.
3.2K
26 декабря 2006 года
Gazzy
38 / / 02.08.2006
Всем большое спасибо.:)
Цитата: Zorkus
обрабатывать неприятные события типа невозможности открыть файл по возвр. ими значению, например
 
Код:
ifstream in("somefile");
if(!in) //файл не был открыт
{
}



Я думаю в моем случае именно это мне и нужно. У меня много математических функций.в каком случае нужно ставить обработку исключений. допустим если функция получает 2 значения и просто перемножает их? И как это можно реализовать (разные значения)? Через if ? :confused:

63
26 декабря 2006 года
Zorkus
2.6K / / 04.11.2006
Цитата: Gazzy
Всем большое спасибо.:)


Я думаю в моем случае именно это мне и нужно. У меня много математических функций.в каком случае нужно ставить обработку исключений. допустим если функция получает 2 значения и просто перемножает их? И как это можно реализовать (разные значения)? Через if ? :confused:


Полагаю, если ты реализуешь такие функции, то проще просто грамотно кодить, чем подключать исключения:) Исключения тут только замусорят код.

398
26 декабря 2006 года
Alexandoros
630 / / 21.10.2005
try-except-statement :
__try compound-statement
__except ( expression ) compound-statement

:)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог