Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    153

    [C++]classe vector e outofrange exeption

    salve a tutti ecco il mio problema:

    ho diversi classi che usano come dati dei vector.
    Per accedere a questi dati usa la funzione at della classe vector. Questa funzione è identica all'operatore [] con l'eccezione che quando si tenta di accedere a un elemento inesistente da un "out of range exeption" e esce dal programma.

    Ora nel main io ho la necessità di accedere ai vari elementi dei vari vector però ho bisogno di intercettare l'"out of range exeption" che da la funzione at() affinché continui il normale corso del programma e che stampi un semplice messaggio d'errore, è possibile? grazie spero di essere stato chiaro
    cogli l'attimo

  2. #2
    Intercetta l'eccezione con un blocco try.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    153
    quindi:

    try{
    //istruzione che genera l'eccezione
    }
    catch(/* qua cosa scrivo */){
    cout<<"Valore non compresso nell'intervallo";
    }
    cogli l'attimo

  4. #4
    codice:
    try{
    //istruzione che genera l'eccezione
    }
    catch(std::out_of_range& e) 
    {
    	cout << e.what() << endl;
    }

  5. #5
    http://www.cplusplus.com/reference/stl/vector/at/
    The difference between this member function and member operator function operator[] is that vector::at signals if the requested position is out of range by throwing an out_of_range exception.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    153
    Originariamente inviato da MItaly
    http://www.cplusplus.com/reference/stl/vector/at/
    si grazie infatti questa parte la sapevo l'ho scritto anche nel primo post non sapevo solo come intercettarla. Grazie
    cogli l'attimo

  7. #7
    Hai chiesto cosa dovevi mettere lì, ti ho evidenziato dov'era la risposta.
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.