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

    [C++] Gestione delle eccezioni... aiuto

    Salve ragazzi, sto cercando di gestire le eccezioni in C++ ma proprio non riesco a fare quello che mi serve. Potreste darmi una mano voi?
    In pratica ho bisogno di propagare un eccezione al chiamante che contenga una stringa di errore e ho provato in questo modo:

    classeServente.h
    codice:
    class classeServente
    {
    public:
    	...
            bool metodo() throw(char* string);
            ...
    }
    ClasseServente.cpp
    codice:
    classeServente::metodo() throw(char* string)
    {
           if(errore == true)
           {
               throw "Stringa di errore";
               return false;
           }
    }
    ClasseCliente.cpp
    codice:
    ....
    try { ClasseServente::metodo(); }
    catch(char* err) { cout<< err; }
    catch(...) { cout<< "Errore Sconosciuto"; }
    ....
    In questo modo però, quando si verifica l'eccezione, il programma mi termina con stato -1 senza gestire le eccezioni...

    grazie per aver letto
    by Palomo2

  2. #2
    Prova con
    codice:
    catch(const char* err) { cout<< err; }
    e modifica la clausola throw mettendo const char * invece di char *.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    E funzionaaa !!! Grazie, stavo impazzendo.... In tutti i tutorial che ho letto diceva di mettere char*... maledetto C++
    by Palomo2

  4. #4
    Non è il C++, ma sono i tutorial che sono il male: sono mediamente scritti da chi non sa le cose o sono obsoleti; è da un sacco di tempo che lo standard C++ definisce le stringhe inserite direttamente nel codice come const char * e non come char * (il che ha senso, visto che se non fossero const potrebbero succedere cose spiacevoli).
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    [OT]Dicevo così perchè purtroppo io vengo dal java e mi trovo un pò spiazzato quando mi tocca essere così rigoroso. Sto sviluppando un'applicazione semplice e volevo cogliere l'occasione per approcciare al C++ sperando di essere avvantaggiato rispetto a chi inizia da zero ma il passaggio mi è già costato pagine e pagine di manuali e tutorial[/OT]
    by Palomo2

  6. #6
    Comunque di solito conviene usare la classe exception e le sue classi derivate, come eccezioni sono più semplici da gestire e da espandere rispetto ai tipi primitivi, specialmente se vieni da Java.
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.