Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Виктор2
Зарегистрирован: 10.10.2005 Сообщения: 37
|
Добавлено: Вс Фев 05 2006 12:55 Заголовок сообщения: В С есть {$I-}...{I+} как в Паскале? |
|
|
Надо чтобы програма не выходила при появлении ошибки, а работала дальше. Но если будет ошибка я сам хочу решать что делать дальше. |
|
Вернуться к началу |
|
|
sniper::p
Зарегистрирован: 04.10.2005 Сообщения: 237 Откуда: rus/73
|
Добавлено: Вс Фев 05 2006 20:16 Заголовок сообщения: |
|
|
Имеется ввиду "чистый" С или, может быть, системы что-нибудь вроде С++Билдер (Вижуал С++). Дело в том, что в стандарте Ansi C есть блоки try .. finally .. catch, а в С их нет _________________ Нет предела совершенствованию |
|
Вернуться к началу |
|
|
Wladimir
Зарегистрирован: 02.03.2005 Сообщения: 150 Откуда: Ставропольский край
|
Добавлено: Вс Фев 05 2006 21:46 Заголовок сообщения: |
|
|
finally нет. Просто - try {...} catch(...) {...} |
|
Вернуться к началу |
|
|
Vasia
Зарегистрирован: 05.02.2006 Сообщения: 8 Откуда: Москва
|
Добавлено: Вс Фев 05 2006 22:20 Заголовок сообщения: |
|
|
Если речь идет о QC или С700, то там есть несколько возможностей обработки Run Time ошибок. Существует включаемый файл ERRNO.H, в котором их порядка 36-ти.
Ошибки обрабатываются с помощью переменных errno, _dos_errno, *sys_errlist[], sys_nerr, и пр., например, clearerr, ferror, strerror и т.д.
В STDIO.H есть функция perror.
Все это достаточно подробно рассматривается в Help/Index/E. Причем с очень понятными примерами.
В зависимости от возникающей ситуации, которая должна прогнозироваться автором программы, надо пользоваться тем или иным способом обработки ошибки.
В других С могут быть другие примочки, но суть их не меняется.
Предусмотрел, обработал и работай дальше. |
|
Вернуться к началу |
|
|
Виктор2
Зарегистрирован: 10.10.2005 Сообщения: 37
|
Добавлено: Пн Фев 06 2006 09:43 Заголовок сообщения: |
|
|
Cпасибо всем! |
|
Вернуться к началу |
|
|
DmitryShm
Зарегистрирован: 17.11.2003 Сообщения: 211 Откуда: Казань
|
Добавлено: Пн Фев 06 2006 10:37 Заголовок сообщения: Visual C++ |
|
|
В Microsoft Visual C++ в их библиотеке времени исполнения предусмотрены вызовы __try, __catch и __finally. Если используете MSVC++, то юзайте их. _________________ love IT |
|
Вернуться к началу |
|
|
Wladimir
Зарегистрирован: 02.03.2005 Сообщения: 150 Откуда: Ставропольский край
|
Добавлено: Пн Фев 06 2006 21:52 Заголовок сообщения: |
|
|
В Buildere аналогично. Но в стандарте - только try/catch. |
|
Вернуться к началу |
|
|
sniper::p
Зарегистрирован: 04.10.2005 Сообщения: 237 Откуда: rus/73
|
Добавлено: Вт Фев 07 2006 00:02 Заголовок сообщения: |
|
|
Да, точно... но идея хороша и полезна. Еще интересная штука в том, что можно самому определять, что за ошибку ты поймаешь, может что-нибудь вроде того, что пользователь ввел не очень достоверные данные о себе... _________________ Нет предела совершенствованию |
|
Вернуться к началу |
|
|
|