Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: inu am 18.09.06 - 07:15:31
-
Hallo Leute,
sollten beim Aufruf der C++API-Funktionen Fehler auftreten, kann man diese dem Rückgabewert LNSTATUS entnehmen. Nun möchte ich aber auf einen bestimmten Fehler prüfen.
Wo um alles in der Welt finde ich die Konstanten, die sich hinter LNSTATUS verbergen?
Vielen Dank
-
grundsätzlich legst du doch selber fest, welche Werte eine Funktion im Fehlerfall zurückgibt
return ( 3100 );
Einzige Konstante, die mit da bekannt ist ist LNNOERROR und die ist 0. Alle Werte > 0 sind Warnmeldungen oder Fehler.
Edit:
Du kannst dir die Meldungen zu den Rückgabewerten auch mittels
LNGetErrorMessage( error, errorBuf);
cout << "Error: " << errorBuf << endl;
ausgeben lassen. Macht bei Systemaufrufen Sinn. Wie gesagt, bei eigenen Funktionen legst du das ja selber fest.
-
@eknori:
z.B. liefert mir die Funktion "session.CreateMessageQueue( buffer, &mqueue);" den Wert 1121 zurück, wenn ich versuche, mittels "LOAD <servertask>" einen selbstgeschriebenen Task ein zweites Mal zu laden. Dahinter verbirgt sich der eigentliche Fehler "message queue name already in use". Nun möchte ich aber auf den Fehler "1121" prüfen und ungern diese Zahl verwenden...
-
und ungern diese Zahl verwenden
Mag jetzt am Montagmorgen liegen, aber warum das denn? Dafür sind die Dinger doch da ...
ThrowAllExceptions
try {
...
}
catch (LNSTATUS lnerror)
{
char ErrorBuf[ERR_BUF_SIZE];
LNGetErrorMessage(lnerror, ErrorBuf, ERR_BUF_SIZE);
std::cout << "Error: " << ErrorBuf << endl;
}
catch (...)
{
nRetCode = 1;
}
return nRetCode;
}
-
@eknori: das ist ja richtig. Ich möchte alle Fehler zu einer einzigen DEUTSCHEN Ausschrift zusammenfassen. Bei dem Fehler 1121 jedoch soll es eine gesonderte Ausschrift geben.
-
}
catch ( 1121 )
{
std::cout << "11. Gebot: Du sollst kein addin mehrfach starten! ( Na ja, nicht alle, aber zumindest ein paar )" << endl;
}