Другие языки программирования и технологии

Try{ }catch c++ Можете по-простому объяснить операторы try,catch? Cпасибо

Оператор try означает "попробуй". Сам по себе он не делает ничего, а выполняется то, что написано между ним и catch. Но если при этом возникает ошибка, то программа не падает, а переходит к выполнению того, что написано после catch. Обычно это сообщение, в чем заключается суть ошибки, и советы по ее устранению. Например, если в нужном месте нет нужного файла, или введен неверный пароль, то надо это исправить, и программа будет работать.
Евгений Евгений
Евгений Евгений
53 758
Лучший ответ
Идеология.
Классический подход к обработке неправильных ситуаций - проверка:
if (a!=0) b /= a;
else {/*сообщить об ошибке*/}
С исключениями делаем наоборот: сначала выполняем действие, а потом разбираем, почему не получилось:
try { b /= a; }
catch(...)
{/*сообщить об ошибке*/}

Практическое применение.
Исключения используются, чтобы:
1. Избежать многократных проверок (команда из 5 разработчиков пишет программу, если каждый будет проверять существование сайта перед тем, как отправить туда сообщение - программа будет создавать значительный ненужный траффик, если каждый будет полагаться на других - может возникнуть ситуация, когда забудут проверить) ;
2. Выйти из сложной ситуации, возникшей в глубине стека вызовов: функция A вызывает функцию B, та - C, та - D, в D возникает исключительная ситуация, например, кто-то в процессе работы программы удалил файл, с которым программа работала - исключение будет последовательно выходить из всех вложенных функций, пока не найдет соответствующий catch, а если не найдет - пользователь получит сообщение, которое подскажет, в чем ошибка.
Точный синтаксис смотри в учебнике.
Дима Вотяков
Дима Вотяков
50 252
Если бы все программы в Windows были написаны корректно и сомнительные участки кода заключались бы в блоки исключительных ситуаций, пользователь забыл бы, что такое синий экран смерти.
это исключения, если например в try выход за границу массива или вместо целого типа строковое и т. д, то всё что в try будет опущено и выполняется catch
если не получается выполнить 1 то выполняется 2