Originariamente inviato da giuseppe500
ciao.
E' n po che programmo in c++ e sto inizando a studiare anche java .
La prima differenza che mi pare notevole è la gestione delle eccezioni.
Perchè in java ogni operazione e inserita in un try/catch con un numero di eccezioni?
non è che OGNI operazione va in un blocco, si è scelto che per operazioni che potenzialmente possono creare problemi, ci si occupi anche della gestione degli stessi.
Originariamente inviato da giuseppe500
Non credo sia solo un fatto di debug(aiutare il programmatore a capire l'errore).
E' percaso dat che java è un linguaggio interpretato una possibilità per recuperare l'applicazione che da errore dal crash?
o mi sbaglio?
ma se è cosi' , non basterebbe una sola exception? perchè tante eccezioni?
grazie.
sono diverse le ragioni:
1. evitare un crash per un file non trovato. Questo consente anche uscite pulite in caso di errore (pensa ad esempio ad un errore con uno stream, magari ne esci in modo pulito rilasciando le risorse che detieni)
2. evitare controlli di validità (anche se io alla fine li preferisco al lancio/gestione dell'eccezione

queste cose sono fatte manualmente in C (tramite codice e/o macro), vengono proposte in C++, rese obbligatorie in Java, in C# puoi anche decidere di non fare niente (anche se personalmente almeno traccio che è successo qualcosa)

Si usano le eccezioni personalizzate per mettere in evidenza diversi fattori causa di errore