Le 26 Apr 2002 Didier Bretin a �crit : > > Que pensez-vous de cette approche ? Est-elle 'logique' avec une > conception Java ? Me trompe-je ? :o) >
Moi je crois que tu devrais utiliser les exceptions partout, sauf cas tr�s particulier, mais je n'en ai pas d'exemple. Cela n'apporte pas grand chose de renvoyer un booleen d'erreur � tester. Voici comment je fais pour les exceptions. Je renvoie par un throw, sans autre forme de proc�s, toutes les exceptions qui se produisent au sein des m�thodes private et protected. Je consid�re qu'elles font des traitements internes pour d'autres traitements internes, et si quelque chose fontionne mal, ce n'est pas � un niveau "interne interne" de s'en occuper. Il y a quelques exceptions � ce principe, toutefois, mais c'est assez rare. Le traitement r�el des exceptions a lieu au niveau des m�thodes publiques. En effet, � ce niveau, une entit� ext�rieure attend un service. Si ce service n'a pu se d�rouler correctement, le "prestataire" doit �tre en mesure d'expliquer pourquoi, et de se remettre dans un �tat correct. Deux fonctions existent donc : expliquer, et se remettre dans un �tat correct. Pour la partie "expliquer", j'ai pour principe de toujours renvoyer une exception en rapport avec l'appel, plus formellement une exception d'un paquage identique aux composants de l'appel. Par exemple si je prends la classe URL, la signature de l'un des constructeurs est : public URL(String spec) throws MalformedURLException Cette signature se comprend tr�s bien : si "spec" est n'importe quoi, mon URL sera mal form�e, tout est clair. MalformedURLException fait partie du paquage java.net, comme URL. Tout va bien. Mais dans aue autre m�thode de la classe URL, j'ai : public URLConnection openConnection() throws IOException D'o� peut sortir cette IOException ?? Pour le comprendre, il faut savoir que URLConnection est une classe qui ressemble de loin � une entr�e / sortie, bien que ce ne soit pas imm�diat, et que on peut imaginer que par une sorte de pr�monition le syst�me renvoie une IOException... Ce n'est pas clair du tout, et je trouve que Sun aurait d� renvoyer � cet endroit une ConnectException. A+. -- Sur le Web, tout de suite. Herve AGNOUX - diaam informatique http://www.diaam-informatique.com
