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

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

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

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

[identity profile] zamotivator.livejournal.com 2009-02-16 08:54 am (UTC)(link)
ребе, отлично понимаю трудозатраты. Вот может быть потому MS и Борланд не зря берут деньги за свою работу, ибо собаку на этом съели.
Нет, Вы не поняли, ВЫ ЛИЧНО писали компилятор? А слово legacy говорит о чём-нибудь?

[identity profile] vp.livejournal.com 2009-02-16 09:08 am (UTC)(link)
ребе, я лично компилятор не писал, потому что не специализируют на компиляторах. Еще я не пишу движки для вебсайтов.
Если бы занимался этой темой, то писал бы компиляторы :)

[identity profile] zamotivator.livejournal.com 2009-02-16 09:13 am (UTC)(link)
Еще я не пишу движки для вебсайтов.
Каким образом движки на веб-сайтах связаны с компиляторами?

Далее - разработка компилятора языка уровня С++ - человеко-годы. Поддержка его на массе платформ, исправление ошибок, расширения - это всё человеко-десятилетия.
Продвижение его в массы, как и нового языка - многие миллионы баксов.
И как следствие - проблемы с интеграцией библиотеки в другие языки.
При таком раскладе уж проще написать библиотеку на популярном языке программирования, и портировать её API в другие языки. Что и сделал trolltech.

А вообще - могу я услышать аргументы в пользу "написания системы с нуля" а то может я не являюсь архитектором кучи продаваемых проектов, разве что одного, но мне непонятно, почему с нуля писать нужно.
Может я тупее ежа, лошади, и так далее - но Вы уж позвольте, объясните мне пожалуйста, глупому такому.

[identity profile] vp.livejournal.com 2009-02-16 09:29 am (UTC)(link)
Тебе в языке нужно делать 2+2
компилятор не понимает операции +, у тебя есть 2 варианта, или сделать это кучей сторонних приблуд, когда в итоге у тебя получится вызов типа function('2','2','add'). Если тебя это не пугает, то ок. Если пугает, то надо дорабатывать компилятор. Что тут непонятного? :)

Я понимаю совместимость и т.п. и в частности перед создателями QT вообще снимаю шапку. Но ситуация очень похожа на ту, когда паскаль переползал из DOS в Дельфи. Борланд, к примеру, увеличил количество ключевых слов и расшилил синтаксис в 2 раза. Я думаю, что и тут задача такого же уровня. Конечно, постоянно нужно ориентироваться что это должно быть совместимым по беблиотекам и т.п. со всем имеющимся зверинцем.

[identity profile] max-posedon.livejournal.com 2009-02-16 09:32 am (UTC)(link)
Давай начнём с того, что задача проверки connect, пока совсем не решена никак. Не внешне, не внутренне. При наличии решения, (хоть какого-то), уже можно обсуждать как его ложить, и куда. А пока это просто желание "connect с проверками".

[identity profile] vp.livejournal.com 2009-02-16 09:37 am (UTC)(link)
Тем не менее я заказал уже ворох бумажных книжек по QT. Будем осваивать и будем обязательно пользоваться.

[identity profile] zamotivator.livejournal.com 2009-02-16 09:36 am (UTC)(link)
Тебе в языке нужно делать 2+2
компилятор не понимает операции +, у тебя есть 2 варианта, или сделать это кучей сторонних приблуд, когда в итоге у тебя получится вызов типа function('2','2','add'). Если тебя это не пугает, то ок. Если пугает, то надо дорабатывать компилятор. Что тут непонятного? :)

Объясните мне две вещи:
1) При чём тут обсуждаемая тема (event-driven реализация в Qt)?
2) Почему Вы думаете, что С++ не поддерживает event-driven?
boost.function / boost.singlas / boost.mpi

http://www.webtoolkit.info/
Ребята явно вдохновлялись Qt. Но они сделали компил-тайм-сейфети сигналы и слоты и у них нету препроцессора. Это ярко демонстрирует отсутствие нужды в стороннем компиляторе - языка С++ более чем достаточно.

Напоминаю - тема нашего обсуждения - компил-тайм-сейфети сигналов и слотов. Давайте от этой темы не уходить в пространные рассуждения о кораблях, бороздящих просторы наших вселенных.

Я понимаю совместимость и т.п. и в частности перед создателями QT вообще снимаю шапку. Но ситуация очень похожа на ту, когда паскаль переползал из DOS в Дельфи. Борланд, к примеру, увеличил количество ключевых слов и расшилил синтаксис в 2 раза. Я думаю, что и тут задача такого же уровня. Конечно, постоянно нужно ориентироваться что это должно быть совместимым по беблиотекам и т.п. со всем имеющимся зверинцем.
Я вижу субъективное "похоже".
Ребята из борланда ПОМЕНЯЛИ ЯЗЫК.
А Qt - это БИБЛИОТЕКА.
Разница очевидна?
makefile'ы не считаются "сторонними утилитами", не так ли? А локализация?

[identity profile] kiryl.livejournal.com 2009-02-16 09:38 am (UTC)(link)
У Паскаля и Обжэкт Паскаля никогда не было стандарта, насколько мне известно, поэтому borland делал с языком всё что хотел. С C++ такого не получится.