Newsgroup: it.comp.lang.c++
Titolo: Eccezioni in c++

Buongiorno a tutti,
sono nuovo di questa lista e anche di c++.Avrei bisogno di una 
informazione,ho la necessita' di gestire delle eccezioni 
all'interno di una procedura, ma dopo ripetute ricerche su 
internet ho abbandonato perche' non ho mai trovato qualcosa che 
facci aper me .. oppure l'argomento e' troppo nuovo per essere 
compreso .. 
quello di cui ho bisogno e' gestire una eccezine generica nel 
caso che un un comando del c++ dia qualche errore ?
come faccio per capire il motivo per cui una comando non e' 
andato a buon fine ?
e' possibile visualizzare l'errore generato?avreste un 
pezzettino di codice da postarmi .. qualche link utile per 
comprendere l'argomento .. dagli esempi su internet ho visto che 
e' possibile gestire le eccezioni, ma solamente quel tipo di 
eccezioni predefinite (tipo dividere per 
zero,overflow,parameteri) ma a me me ne serve una generica per 
qualsiasi tipo di errore.
vi ringrazio per qualsiasi risposta.
Buona giornata.
Mirco
-- 
Inviato da Virgilio 
http://newsgroup.virgilio.it
Filtra gli antipatici, segnala le risposte, segue i thread, e tutto da web

 ha scritto nel messaggio 
news:4273674.1106212482123.JavaMail.newsgroup@sc-ng-1...


 e' possibile visualizzare l'errore generato?
Dipende dall'eccezione... comunque puoi provarci. Ma dove vuoi vederlo?
-- 
[ RiK0                                ]
[ Go away! The internet is full!      ]
[ Non credo negli schemi non vincenti ]

 Mirco
Usa una classe base, chiamiamola Exception, poi derivi le eccezioni 
specifiche da questa. Facendo un catch su una reference a Exception
sfrutti il meccanismo del polimorfismo (ossia intercetti ogni Exception 
e OGNI SUA DERIVATA)

Enrico, innanzitutto grazie per la risposta .. ti spiego:
io vorrei gestire le eccezioni tra i costrutti try e catch, per 
esempio nel caso in cui eseguo delle query che potrebbero andar 
male, oppure passare dei valori errati ad una funzione .. per 
esempio adesso sto cercando di scrivere un file di log 
utilizzando il seguente comando :
fprintf(MyStreamFile, "%s\n", sMessage.c_str());
la procedura mi esce senza dirmi come e che tipo di errore c'e', 
allor apensavo che esisteva la possibilita di mettere tutto in 
un blocco try e catch , gestendo un'eccezione di tipo 
generico .. sapendo quindi cosa c'e' che non va'.Per il momento 
mi basterebbe scrivere l'errore anche su un file .. spero di 
essere stato chiaro .. sono un po' confuso e grazie ancora per 
qualsiasi risposta. .
ciao
Mirco
Enrico Franchi ha scritto:



 generico .. sapendo quindi cosa c'e' che non va'.
Visto che fprintf è tipicamente C e gli errori li comunica tramite
valore di ritorno/errno. Leggiti il manuale di fprintf.
Suggerisco anche la lettura di un manuale di C++. Senza si va poco
lontano.
Suggerisco anche di quotare un poco meglio.


 male, oppure passare dei valori errati ad una funzione ..
try e catch sono del C++ ma non è detto che le librerie che stai usando
le usino. Devi vedere nella documentazione della funzione che stai
chiamando.
In genere, non esiste un trattamento *unificato* degli errori in C o
C++. Ognuno, che sia sistema operativo, libreria per database, libreria
standard, usa il meccanismo che vuole, ma te lo dice attraverso la
documetazione delle sue funzioni.
Se parli di query, forse stai eseguendo degli statement SQL su qualche
database. Come sopra, devi vedere la documentazione della libreria che
usi (DB2/Oracle/MySql...).
-- 
int

 la procedura mi esce senza dirmi come e che tipo di errore c'e', 
Che vuol dire "la procedura esce"? 'fprintf' ritorna senza scrivere nulla
sul file? Il programma termina l'esecuzione in modo anomalo?
Max