TRY und CATCH für Anfänger



  • Hallo,

    ich möchte mit Hilfe von MSCOMM abfragen wie viele und welche COM-Ports am PC verfügbar sind. Da die nicht verfügbaren Ports einen Programmabbruch bewirken, möchte ich bei "m_com1.SetPortOpen(true)" eine TRY-Anweisung realisieren. Bis jetzt habe ich folgenden Code-Auszug ausprobiert:

    for (int i=1;i<25;i++)
    {
    m_com1.SetCommPort(i);
    try
    {
    m_com1.SetPortOpen(true);
    }
    catch(CMSComm::SetPortOpen)
    {
    text.Format("Der COM-Port: %i ist NICHT vorhanden", i);
    pEdit->SetWindowText(text);
    pEdit->RedrawWindow(NULL,NULL,RDW_UPDATENOW);
    Sleep(500);
    }

    und bekomme diese Fehlermeldungen:

    error C2321: Syntaxfehler : 'CMSComm::SetPortOpen' unerwartet //catch-Anweisung
    error C2310: catch-Behandlungsroutine muss einen Typ angeben //wenn ich BOOL angebe bekomme ich einen HEAP-Fehler
    error C2317: Der 'try'-Block ab Zeile '190' besitzt keine catch-Behandlungsroutinen

    Danke und viele Grüße

    Walter



  • Hi,

    schau mal in der Anleitung von CMSComm nach welchen fehler (Exception) die Funktion SetPortOpen wirft, wenn der Port nicht vorhanden ist. Dieser fehler muss dann auch in die catch Anweisung.
    Also

    catch(Exception) {
        // Fehlerbehandlung
    }
    

    MFG
    Kai

    [EDIT]und bitte verwende Codetags, das liest sich besser 😉 [/EDIT]

    [ Dieser Beitrag wurde am 20.08.2002 um 11:43 Uhr von KaiE editiert. ]


Anmelden zum Antworten