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

В чём необходимость использования блока try catch вместо if в С++ ?

Не надо писать что так будет проще и т. п. нужна именно необходимость.
Нет необходимости. Вон, на C до сих пор пишут, и пишут много - безо всяких исключительных ситуаций.
А использование try...catch ВМЕСТО if - IMHO, забивание гвоздей микроскопом.
...
Ну разве что у нас есть кривой код, поддерживающий exception-ы, но уже в скомпилированном виде - тогда приходится цепляться за них.. . но это должно быть нечто экзотичное. Любая программа может быть представлена в структурной форме, доказано еще в 50-е, а исключения - не структурные.
Кстати, если тебе "нужно конкоретно когда можно пользоваться try и когда нельзя if" - то так и надо спрашивать, а не так, как ты спросил.
Kopmvf Kopmvf
Kopmvf Kopmvf
87 048
Лучший ответ
try - служит для обозначения БЛОКА который может генерировать исключение.
Причем здесь if
Еще catch относиться к блоку try описанному выше, то бишь для каждого try можно разные catch
Так что это стандарт языка и читайте подробней где-то в стандартах
Ну try catch throw больше для обработок ошибок юзается, а if просто обработка твоего условия и не более

Ну для больших условий лучше

int a = 0;

switch(a);

Case(a = 5)
{
}

if - условие

try...catch...throw - обработка исключения, думаю тут понятно

Kaiu правильно донес мою мысль....
что значит "можно пользоваться трай" ? есть у тебя библеотечная С++ функция, которая генерирует исключение, допустим что-то из библиотеки БУСТ, ну и как ты ИФ будешь использовать? у тебя все красными окнами пойдет :), ее надо обернуть в свой трай - катч, посмотреть что за ошибка произошла, можно обернуть сразу несколько вызовов. С другой стороны есть чисто Сишная функция, которая возвращает допустим 0 при ошибке, ее бессмысленно оборачивать в трай-катч, потому что она никогда не генерирует исключений - тут надо получить результат работы и проверить через ИФ что все нормально.
[Karataev] [A]
[Karataev] [A]
944