1. Для чего существует обработка исключительных ситуаций? Ведь исключение можно обработать, когда его только выбросишь с помощью throw. Так нельзя вместо try, catch, throw просто написать условие if (la-la-la){обработка "исключения"}?
2. Посоветуйте книгу по WinAPI, а то постоянно узнаю для себя что-то новое: странные типы HBITMAP, HRESULT, странные константы WM_Destroy (мог и ошибиться).
Другие языки программирования и технологии
Парочка вопросов по C++
1. Не все можно проверить простым условием. Например когда программа читает файл, и имя неправильное, или файла вообще нет? проще исключение обработать "ошибка чтения" и все. Или если ты читаешь тот же файл и записываешь например в int переменную, попалось не число а например строка то так же исключение обработал и все, условием не проверишь, строка это или число
2. Р. М. Ганеев - Проектирование интерфейса пользователя средствами Win32 API
2. Р. М. Ганеев - Проектирование интерфейса пользователя средствами Win32 API
1. Исключения "проходят" через вызовы функций. Программа может писаться несколькими людьми, а проверки могут отнимать много времени. И тогда
int f()
{
if(...)throw new a();
}
...
try{f();}
catch(a b){....}
явно лучше, чем проверки перед каждом вызовом функции f.
2. Да поможет тебе Google и MSDN :)
int f()
{
if(...)throw new a();
}
...
try{f();}
catch(a b){....}
явно лучше, чем проверки перед каждом вызовом функции f.
2. Да поможет тебе Google и MSDN :)
1. Можно, но это превращает твой код в кашу из обработки ошибок.
Плюс, если у тебя f вызывает g, и в g произошла исключительная ситуация, то придется через f вернуть в вызывающий код номер ошибки. Обычно для этого используются какие-нибудь глобальные переменные. Все это очень громоздко и не очень удобно.
Посмотри на Си, там всегда жили без исключений, только с кодом ошибок. Код из примеров любой библиотеки с демонстрацией ошибок - уже каша.
2.
MSDN
> странные типы HBITMAP, HRESULT
Это просто дескрипторы.
Плюс, если у тебя f вызывает g, и в g произошла исключительная ситуация, то придется через f вернуть в вызывающий код номер ошибки. Обычно для этого используются какие-нибудь глобальные переменные. Все это очень громоздко и не очень удобно.
Посмотри на Си, там всегда жили без исключений, только с кодом ошибок. Код из примеров любой библиотеки с демонстрацией ошибок - уже каша.
2.
MSDN
> странные типы HBITMAP, HRESULT
Это просто дескрипторы.
уже не то время что б WinAPI изучать - изучай QT(только после изучения ООП на С++) фрейворк или переходи на C#
Похожие вопросы
- Ещё тупой вопрос по C++ :)
- Вопрос по c++ )
- Тупые вопросы по C#) Конструкторы, set, get.
- Новичок, парочка вопросов.
- Вопрос по C++
- вопрос по C++ как работать с заголовками? компилятор ругается, непойму как связать 3 файла. исходники внутри.
- помогите!!! вопрос по C++ нужно написать программку "заполните массив так, чтобы все его элементы были различны.
- Очень важный вопрос по C++
- вопрос на C++
- Несколько вопросов по C++