Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: inu am 18.09.06 - 07:15:31

Titel: LNSTATUS (C++ API)
Beitrag 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
Titel: Re: LNSTATUS (C++ API)
Beitrag von: eknori am 18.09.06 - 07:23:16
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.
Titel: Re: LNSTATUS (C++ API)
Beitrag von: inu am 18.09.06 - 07:27:58
@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...


      
Titel: Re: LNSTATUS (C++ API)
Beitrag von: eknori am 18.09.06 - 07:35:56
Zitat
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;
}
Titel: Re: LNSTATUS (C++ API)
Beitrag von: inu am 18.09.06 - 07:38:15
@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.
Titel: Re: LNSTATUS (C++ API)
Beitrag von: eknori am 18.09.06 - 07:43:04
}
   catch ( 1121 )
   
   {
     std::cout << "11. Gebot: Du sollst kein addin mehrfach starten! ( Na ja, nicht alle, aber zumindest  ein paar )"  << endl;
   }