Q_ASSERT
est une macro d'assertion personnalisée qui améliore la fonction standard assert
. Le message d'erreur est géré par qFatal()
, qui peut se comporter légèrement mieux sur certaines plates-formes que la macro standard assert. Par exemple, sur Windows, il déclenchera le débogueur Visual Studio au point où l'assertion échoue au lieu de simplement appeler abort()
.
Vous pouvez également rediriger la sortie des fonctions de message d'erreur Qt tels que qFatal
à votre gestionnaire de message personnalisé (avec qInstallMessageHandler()). Cela peut être utile, par exemple, si vous voulez rediriger le message d'erreur vers un fichier.
Notez également que Q_ASSERT
est désactivé avec la macro QT_NO_DEBUG
(alors que assert
est désactivé par NDEBUG
): cela peut être utilisé pour séparer votre code lié entre affirme-Qt et le reste.
Q_ASSERT_X
Imprime le message avec l'emplacement où, le nom du fichier source et le numéro de ligne si test est faux. Imprime le message avec l'emplacement où, le nom du fichier source et le numéro de ligne si test est faux. Exemple:
// File: div.cpp
#include <QtGlobal>
int divide(int a, int b)
{
Q_ASSERT_X(b != 0, "divide", "division by zero");
return a/b;
}
pour en savoir plus sur test and debug.
Sur quel système d'exploitation? Pourquoi utiliser le débogueur 'gdb' n'est pas suffisant? –
Ubuntu, je ne veux pas utiliser le débogueur pour tout ... c'est beaucoup plus facile de lancer une assertion et de lancer l'application. – SPlatten