Scelta migliore per gestire eccezioni

di il
3 risposte

Scelta migliore per gestire eccezioni

Buonasera ragazzi ,finito il programma per lettura e scrittura da seriale mi sto dedicando ad apportare qualche piccolo miglioramento: come ad esempio la gestione delle eccezioni. Ho deciso di gestire il tutto con un blocco try-catch-goto, come vi sembra?La logica che ho utilizzato va bene? Se avete idee migliori sono qui per imparare a fare di meglio ^_^.
Sintetizzo la struttura del codice per la gestione dei thread:

etichetta:
	std::cout<<"Riprovo il try"<<std::endl;

try
{
 apertura thread;
}
catch(const int e)
{
 std::cout<<"Impossibile aprire il thread"<<std::endl;
 goto etichetta;
}
Spero di essere stato abbastanza chiaro e di non aver commesso errori, purtroppo sto studiando molti linguaggi di programmazione e spesso faccio confusione. A presto

3 Risposte

  • Re: Scelta migliore per gestire eccezioni

    L'utilizzo del goto non è una buona pratica di programmazione e quindi la tua soluzione da questo punto di vista sarebbe da evitare.
    Il punto è che dovresti capire quali sono i motivi per cui il tuo thread non parte perchè ci possono essere dei problemi risolvibili come ci potrebbero essere dei problemi per i quali è necessario uscire.
    Per non contare il fatto che devi controllare le risorse, per esempio potresti dover allocare della memoria che in determinati casi va deallocata e in altri no: l'utilizzo di un generico try/catch non ti aiuta molto da questo punto di vista.
  • Re: Scelta migliore per gestire eccezioni

    Grazie mille per la risposta, cosa potresti consigliarmi? Nello specifico ho un thread per il push , uno per il pop da una struttura coda (gestiti con mutex) e un thread per inviare gli elementi (se presenti) all'iterno di un database su seriale. A me servirebbe un modo per fare sempre avviare i thread, non mi interessa molto sapere in quale catch finisce.
  • Re: Scelta migliore per gestire eccezioni

    Devi testare quale thread eventualmente non parte. Comunque mostra un po' di codice ...
Devi accedere o registrarti per scrivere nel forum
3 risposte