Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [C++]Try

  1. #1

    [C++]Try

    Skusate, potrei sapere a cosa serve Try in C++???? Da quel poco che ho capito gestisce le eccezioni( correggetemi pure) ma nn ho capito dove usarlo:quipy:
    Potete chiarirmi??????


    Tnk per le eventuali risposte


    P.S: Vlad, quest mi sembra un 3d utile( nn ciedo come se dichiara na variabile:master: )
    Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che
    si realizzi
    .
    Os: WinME
    Lang: C++
    Editor: C++ Builder 6 Enterprise

  2. #2
    ap
    Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che
    si realizzi
    .
    Os: WinME
    Lang: C++
    Editor: C++ Builder 6 Enterprise

  3. #3
    :quote:
    Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che
    si realizzi
    .
    Os: WinME
    Lang: C++
    Editor: C++ Builder 6 Enterprise

  4. #4
    nn ho problemi di tempo, aspettero........
    Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che
    si realizzi
    .
    Os: WinME
    Lang: C++
    Editor: C++ Builder 6 Enterprise

  5. #5
    Originariamente inviato da McAuriel V
    esatto.. gestisce le eccezioni. La butto su lsemplice ora ma se haipazienza domani ti approfondisco il tema.
    Hai una funzione.. la inserisci nel Try. A questo punto se si verificano, errori, particolarità.. eccezioni durante l'esecuzione del codice difunzione la direttiva Try le "cattura" e se con dei catch le hai previste. esegui del codice particolare...

    un esempio sarebbe ideale ma ho poco tempo stasera... sorry
    ti aspetto
    Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che
    si realizzi
    .
    Os: WinME
    Lang: C++
    Editor: C++ Builder 6 Enterprise

  6. #6
    suppe:quipy:
    Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che
    si realizzi
    .
    Os: WinME
    Lang: C++
    Editor: C++ Builder 6 Enterprise

  7. #7
    Esiste in C++ la possibilità di usare un meccanismo per la gestione degli errori molto meno oneroso per il programmatore del classico "controlla il valore di ritorno della procedura", e inoltre ha il vantaggio di evitare che ogni programmatore segua la propria personale convinzione circa la gestione di tali errori.

    Alcune classi C++ possono in determinati casi segnalare condizioni di errore tramite un costrutto throw ErrObject, dove ErrObject è un tipo dati primitivo o definito dall'utente.

    Si dice che l'istruzione throw ErrOject "solleva un'eccezione".

    Quando un'eccezione viene sollevata, l'esecuzione normale del programma viene sospesa, e il runtime cerca nello stack di chiamate la prima funzione in grado di gestire un'eccezione di quel tipo, se non viene trovato nessun gestore il programma viene terminato.

    In pratica

    supponi che nel costruttore della tua classe X devi connetterti con una socket:
    codice:
    X::X(int socket)
    {
        string err;
        if(socket==-1)
        {
           err = "socket non valido";
           throw err; //solleva eccezione
        }
        ....
        
    }
    
    ....
    
    try{
         X * pX = new X(sock);
    }
    catch(string e)
    {
         cout << e;    
         exit(1);
    }
    ....
    il vantaggio dei blocchi try è che puoi per ogni blocco di codice inserirne uno unico per dover evitare di rendere troppo ridondante il codice
    codice:
    try{
        questo(); //questo potrebbe generare un errore del tipo DetailedErrDescr
        quello(); //quello potrebbe generare un errore del tipo UltraDetailedErrDescr;
        quell_altro(); //quell_altro genera eccezioni di int*   
        quell_altro_ancora(); //quell_altro_ancora genera errori di tipo DetailedErrDescr
    }
    catch(DetailedErrDescr e)
    {
     ....
    }
    catch(UltraDetailedErrDescr e)
    {
      ....
    }
    catch(...) //questa riga vuol dire "cattura eccezioni di qualunque tipo". 
    //Ovvio non puoi avere informazioni sull'errore
    {
      ....
    }

  8. #8
    cominzio a capi, tnk
    Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che
    si realizzi
    .
    Os: WinME
    Lang: C++
    Editor: C++ Builder 6 Enterprise

  9. #9
    ap
    Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che
    si realizzi
    .
    Os: WinME
    Lang: C++
    Editor: C++ Builder 6 Enterprise

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.