Другие языки программирования и технологии
Try{ }catch c++ Можете по-простому объяснить операторы try,catch? Cпасибо
Оператор try означает "попробуй". Сам по себе он не делает ничего, а выполняется то, что написано между ним и catch. Но если при этом возникает ошибка, то программа не падает, а переходит к выполнению того, что написано после catch. Обычно это сообщение, в чем заключается суть ошибки, и советы по ее устранению. Например, если в нужном месте нет нужного файла, или введен неверный пароль, то надо это исправить, и программа будет работать.
Идеология.
Классический подход к обработке неправильных ситуаций - проверка:
if (a!=0) b /= a;
else {/*сообщить об ошибке*/}
С исключениями делаем наоборот: сначала выполняем действие, а потом разбираем, почему не получилось:
try { b /= a; }
catch(...)
{/*сообщить об ошибке*/}
Практическое применение.
Исключения используются, чтобы:
1. Избежать многократных проверок (команда из 5 разработчиков пишет программу, если каждый будет проверять существование сайта перед тем, как отправить туда сообщение - программа будет создавать значительный ненужный траффик, если каждый будет полагаться на других - может возникнуть ситуация, когда забудут проверить) ;
2. Выйти из сложной ситуации, возникшей в глубине стека вызовов: функция A вызывает функцию B, та - C, та - D, в D возникает исключительная ситуация, например, кто-то в процессе работы программы удалил файл, с которым программа работала - исключение будет последовательно выходить из всех вложенных функций, пока не найдет соответствующий catch, а если не найдет - пользователь получит сообщение, которое подскажет, в чем ошибка.
Точный синтаксис смотри в учебнике.
Классический подход к обработке неправильных ситуаций - проверка:
if (a!=0) b /= a;
else {/*сообщить об ошибке*/}
С исключениями делаем наоборот: сначала выполняем действие, а потом разбираем, почему не получилось:
try { b /= a; }
catch(...)
{/*сообщить об ошибке*/}
Практическое применение.
Исключения используются, чтобы:
1. Избежать многократных проверок (команда из 5 разработчиков пишет программу, если каждый будет проверять существование сайта перед тем, как отправить туда сообщение - программа будет создавать значительный ненужный траффик, если каждый будет полагаться на других - может возникнуть ситуация, когда забудут проверить) ;
2. Выйти из сложной ситуации, возникшей в глубине стека вызовов: функция A вызывает функцию B, та - C, та - D, в D возникает исключительная ситуация, например, кто-то в процессе работы программы удалил файл, с которым программа работала - исключение будет последовательно выходить из всех вложенных функций, пока не найдет соответствующий catch, а если не найдет - пользователь получит сообщение, которое подскажет, в чем ошибка.
Точный синтаксис смотри в учебнике.
Если бы все программы в Windows были написаны корректно и сомнительные участки кода заключались бы в блоки исключительных ситуаций, пользователь забыл бы, что такое синий экран смерти.
это исключения, если например в try выход за границу массива или вместо целого типа строковое и т. д, то всё что в try будет опущено и выполняется catch
если не получается выполнить 1 то выполняется 2
Похожие вопросы
- Как думаете, стало бы ПО стабильнее, если бы все компиляторы сами ВЕСЬ код "заворачивали" в try-catch'и?
- C++ кто может по простому объяснить куда и что вовращает оператор RETURN?
- В чём необходимость использования блока try catch вместо if в С++ ?
- Впервые открыла Visual C++ и уже целый час не могу написать простейшую программку
- Изучаю C# не понимаю как работает оператор for объясните плиз!
- Вопрос по языку программирования C# (СиШарп) (очень простой вопрос)
- Как в C++ Писать русскими буквами в операторах вывода? Какую библиотеку подключить?
- Я зная C++ (уровень - днище) написал полноценную программу на C# за 7 дней. А программисты C# могут так же на C++?
- что такое Операционная система MS DOS . объясните пжл по проще . объясните пжл по проще .
- Что на данный момент актуальней - Delphi или C++? и что проще в освоении?заранее спс:)