Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    gestione eccezioni

    Ciao, vorrei sapere come è possibile gestire le eccezioni in C++.
    Conosco il funzionamento dei blocchi try, catch e finally che ho usato in ambiente Java vorrei sapere come si usano in C++.
    Ho visto in giro per la rete che la sintassi è la stessa ma vorrei approfondire quali sono le eccezioni che devo catturare.
    Per esempio in una divisione fra due interi potrei capitare nel caso di division by zero in questo caso che fare?
    Devo gestire solo quella eccezione o c'è una classe di eccezioni che comprende anche quella? In parole povere nel blocco catch che dovrei scrivere fra parentesi?
    Se avete qualche link postate pure.
    Grazie

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Non te la prendere ma io ti consiglio di acquistare un buon libro sul C++ o di dare un'occhiata al Thinking in C++ di Bruce Eckel liberamente disponibile in rete anche se solo in inglese.
    Non è possibile su un forum spiegare in dettaglio tutti gli aspetti del linguaggio e le eccezioni sono uno di questi e anche uno dei più complessi (anche se non sembra)

  3. #3
    Ciao, ho letto qualcosa ma facendo un esempio con questo codice:
    codice:
    int valore;
    cout << "Inserisci età: " << endl;
    cin >> valore;
    se l'utente inserisce una stringa invece di un int come posso fare per rilevare l'errore?
    Da quello che ho letto dovrei controllare il tipo passato e segnalare attraverso un throw un'eccezione...ma non so come fare.
    Grazie

  4. #4
    Ho provato così:
    codice:
    frequenzaMonitor;
    try{
    	cout << "Inserisci la frequenza del monitor:" << endl;
    	cin >> frequenzaMonitor;
    	m.setFrequenza(frequenzaMonitor);
    	}catch( runtime_error err){
    		cout << err.what();
    	}
    ma se l'utente inserisce una stringa al posto di un float è da considerarsi un runtime error?
    ...così non mi stampa niente, mi termina il programma.
    Grazie

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.