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

Répondre à