Интересное мнение по поводу исключений:Цитата:Во-первых, сделать проверку на ошибку ничуть не проще, если ее надо протащить на неизвестное количество уровней выше. Код возврата надо тащить с уровня на уровень вручную. Исключение тащить никуда не надо - оно само летит.
Во-вторых, что более важно: throw бросает наверх не какой-то жалкий код ошибки, а целый объект пользовательского типа любого размера. В этот объект вы можете запихать любое количество информации, которое будут аккуратно перенесено с самого низу наверх, к обработчику исключения. Пока исключение летит снизу вверх, его можно перехватывать на полпути, дополнять контекстной информацией и посылать дальше вверх.
В-третьих, механизм перехвата исключения позволяет фильтровать исключения по типу брошенного объекта. Т.е. на любом уровне вы можете перехватывать те типы исключений, которые вас интересуют и игнорировать остальные (которые будут спокойно пролетать вверх).
И т.д. и т.п.
А здесь про Qt и исключения:Цитата:When Qt was started exceptions were not available for all the compilers that needed to be supported by Qt. Today we are trying to keep the APIs consistent, so modules that have a history of not using exceptions will generally not get new code using exceptions added.
You will notice exceptions are used in some of the new modules of Qt.