metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-02-15 06:22 pm

Qt, обработка ошибок

Что-то в примерах и документации нигде не вижу как обрабатываются ошибки, типа "в функцию передали кривой параметр", "вызов нижележащей ОС сдох, потому что ее сгрызли черви", итд.
Функции типа qWarning,qFatal, итд, вижу, есть. Вроде и обработка исключений какая-то есть, класс вроде Exception. Но вроде ж try-catch религия не позволяет в C++ юзать или я чего-то уже путаю?

Т.е. вообще, как принято обрабатывать ошибки в Qt?

[identity profile] metaclass.livejournal.com 2009-02-16 09:42 am (UTC)(link)
В С# и жабе метапрограммирования нет.

Лично мне метапрограммирование нужно для генерации гуя и адаптеров к БД на этапе компиляции - иначе там сотни строк тупого кода чисто присваивания(поле БД->поле объекта-поле экрана и обратно) , а ORM все это дело только ухудшает, добавляя к этим полям еще и поле описания связи объекта и БД.
Ну еще не помешало бы в xml, бинарные форматы и текст сериализовать с помощью метапрограммирования, но это можно и через рефлекшен сделать, хоть и криво.

[identity profile] zamotivator.livejournal.com 2009-02-16 10:12 am (UTC)(link)
В С# и жабе метапрограммирования нет
Хибернейты юзают кодогенерацию. Это является примером метапрограммирования?

[identity profile] metaclass.livejournal.com 2009-02-16 10:15 am (UTC)(link)
А, в таком смысле, да, есть.

[identity profile] zamotivator.livejournal.com 2009-02-16 10:14 am (UTC)(link)
Ну еще не помешало бы в xml, бинарные форматы и текст сериализовать с помощью метапрограммирования, но это можно и через рефлекшен сделать, хоть и криво.
Ну почему же криво, наоборот, пример адекватного использоавния. А если руками сериализацию писать - то это на любом языке можно, метапрограммирования тут не нужно.

Конкретно присваивания из гуя и обратно - необязательно метапрограммирование.
MVC, конкретно тот что в Qt это дело упрощает до безобразия.