Why does QT use so few exceptions?
-
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.
-
Tobias, does it mean that some day (version of Qt like 6.10) we will have exception-style error handling in Qt, not error()-methods?
-
Denis: For consistency we should not mix error handling styles in modules, so I can not see this happen without causing a mayor version number change (since the non-exception style would need to get removed which will break source compatibility).
But this is just my opinion: I am not aware of any plans for Qt 5 or later.
-
[quote author="Tobias Hunger" date="1286374926"]
But this is just my opinion: I am not aware of any plans for Qt 5 or later.[/quote]NOOOOOOO!!! =P
-
danilocesar: What was that NOOOOO about?
-
It's a good place to change major architecture decisions without harm current devs.
From a simplistic point of view (without thinking about continuous improvement of current apps, kde, nokia, market, etc), who doesn't want Qt 5? :) -
MTK358: I do not know of any plans, that does not mean that nobody else is doing planning;-)
-
s.frings: Yes, there is no reason not to use exceptions in your own programs. I do not know whether it is a good idea for consistency reasons: I prefer not having to switch between exception/non-exception code, but that is just a matter of taste.
-
What about QSqlError ?
I find it annoying calling lastError() every time I execute a SQL query. I can't think of a better place to use exceptions instead of error codes. Not to mention that exceptions are thread-safe. -
Some of them are explained "here":http://www.parashift.com/c++-faq-lite/exceptions.html
And keep in mind:
there is NO one size fits all! Exceptions might work wel for one case, but not for the other. -
You'll have to wait at least until Qt 5 comes around.
All releases of the Qt 4 series will stay source and binary compatible. Switching to using exceptions is a far too big change. Maybe it will come sometimes, but don't expect anything. There aren't even rumors about a timeline of Qt 5, even less abut exceptions...