Précédent   Forum des professionnels en informatique > Java > Communauté Java > Débats

Débats Les débats et sondages sur le langage et les technologies Java

Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Affichage des résultats du sondage: Êtes-vous pour ou contre cette proposition ?
Pour 334 86,75%
Contre 51 13,25%
Votants: 385. Vous ne pouvez pas participer à ce sondage.

Publicité
'
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Vieux 14/08/2008, 14h15   #161
Expert Confirmé Sénior
 
Avatar de _skip
 
Homme
Développeur d'applications
Inscription : novembre 2005
Messages : 2 326
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Suisse

Informations professionnelles :
Activité : Développeur d'applications
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2005
Messages : 2 326
Points : 4 795
Points : 4 795
Citation:
Envoyé par adiGuba Voir le message
La seule chose que Java impose, c'est de déclarer les checked-exception que l'on remonte...
a++
T'avais peut être raison sur la stacktrace, j'ai peut être confondu c# et java lorsque j'ai dit qu'un throw ex; modifiait la stacktrace de ex. En c# c'est ce qui se produit, pour java pas le coeur de vérifier alors je te crois sur parole.
Mais le problème de fond reste toujours le même, si tu relances une exception de type "Exception" tu devras décorer toutes tes méthodes de throws Exception ce qui casse tout le concept.
_skip est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2008, 15h07   #162
Membre confirmé
 
Inscription : mai 2007
Messages : 232
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 232
Points : 255
Points : 255
Citation:
Envoyé par _skip Voir le message
-Tu peux tout à fait catcher exception du moment que tu fais une propagation en bonne et due forme et sans perte de l'information, java impose d'éviter ce genre de chose à cause des checked exceptions, mais dans d'autres langages c'est possible et tout à fait propre et sérieux.
Justement, je ne parles pas de ce qu'impose java, mais de ce que l'on s'impose à soi même pour garder un code propre donc maintenable.

Citation:
-finally ça se déclenche aussi si tout s'est bien passé, c'est l'endroit idéal pour libérer des ressources mais pas pour effectuer un rollback.
Euh oui, là j'ai déconné à plein tube, finally c'est plutôt pour une fermeture de connection, de fichier...
il n'empêche que le cas du rollback est justement particulier: on doit le faire au plus haut niveau du service pour annuler toutes les opérations du service, ce qui rejoint mon cas de service de haut niveau.
Et du reste, on doit refaire un try catch dans le catch car on n'est pas sûr d'avoir toujours la connection si l'exception est justement une coupure de connection.
deltree est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2008, 15h12   #163
Rédacteur/Modérateur
 
Avatar de adiGuba
 
Homme
Développeur Java/Web
Inscription : avril 2002
Messages : 12 460
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Corse (Corse)

Informations professionnelles :
Activité : Développeur Java/Web
Secteur : Transports

Informations forums :
Inscription : avril 2002
Messages : 12 460
Points : 19 447
Points : 19 447
Citation:
Envoyé par _skip Voir le message
Mais le problème de fond reste toujours le même, si tu relances une exception de type "Exception" tu devras décorer toutes tes méthodes de throws Exception ce qui casse tout le concept.
Dans le cas des checked-exceptions seulement (ce qui n'existe pas en C#).

Si tu manipules des unchecked-exceptions (RuntimeException en Java) tu te retrouveras exactement dans le même cas qu'en C#.

Maintenant on pourrait faire un débat sur l'intérêt des checked-exception, mais c'est un autre sujet.

a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java Présentation de Java SE 7 (commentaires)
adiGuba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2008, 04h01   #164
Membre éclairé
 
Inscription : décembre 2007
Messages : 222
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 222
Points : 310
Points : 310
Pour, mais avec une syntaxe bien pensée.
OWickerman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2008, 11h20   #165
Membre du Club
 
Inscription : août 2008
Messages : 47
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 47
Points : 46
Points : 46
C'est vrai que voir un separateur | comme ça, me fait plutot penser soit à du C pour separer des options du genre O_CREAT | O_RDWR soit à de l'OCaml pour separer des constructeurs ABR = Nil | Node of (int*ABR*ABR)
Mais pas habitué à ça en java pour ma part.

J'aimerais avoir une façon simple de catcher toutes les exceptions d'un coup sans avoir à faire une chaine à ralonge.
nonpoluant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2008, 11h23   #166
Rédacteur/Modérateur
 
Avatar de adiGuba
 
Homme
Développeur Java/Web
Inscription : avril 2002
Messages : 12 460
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Corse (Corse)

Informations professionnelles :
Activité : Développeur Java/Web
Secteur : Transports

Informations forums :
Inscription : avril 2002
Messages : 12 460
Points : 19 447
Points : 19 447
Citation:
Envoyé par nonpoluant Voir le message
C'est vrai que voir un separateur | comme ça, me fait plutot penser soit à du C pour separer des options du genre O_CREAT | O_RDWR soit à de l'OCaml pour separer des constructeurs ABR = Nil | Node of (int*ABR*ABR)
Mais pas habitué à ça en java pour ma part.
Cela existe pourtant aussi en Java et la signification est très claire : "OU" !

Citation:
Envoyé par nonpoluant Voir le message
J'aimerais avoir une façon simple de catcher toutes les exceptions d'un coup sans avoir à faire une chaine à ralonge.
Pour catcher toutes les exceptions on peut utiliser catch(Exception)... mais ce n'est pas très propre et peut poser d'autres problèmes (comme traiter des exceptions que l'on ne souhaiterais pas).


a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java Présentation de Java SE 7 (commentaires)
adiGuba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2008, 18h34   #167
Invité de passage
 
Inscription : octobre 2008
Messages : 4
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 4
Points : 4
Points : 4
Par défaut Pour

Pour, à condition de pouvoir spécifier le type de l'erreur attrapée :

Code :
1
2
3
4
5
6
7
try {
	// Tentative
}
catch (SQLException e : SQLWarning | BatchUpdateException) {
	// Echec
	e.getSQLState();
}
C'est plus précis que :

Code :
1
2
3
4
5
6
7
try {
	// Tentative
}
catch (SQLException e) {
	// Echec
	e.getSQLState();
}
car on attrape pas toutes les SQLException.
En même temps cela évite les lourdeurs du type :

Code :
1
2
3
4
5
6
7
8
9
10
11
try {
	// Tentative
}
catch (SQLWarning e) {
	// Echec
	e.getSQLState();
}
catch (BatchUpdateException e) {
	// Echec
	e.getSQLState();
}
En cas d'omission du type de retour il pourrait être interprété comme étant simplement Exception. En effet, la plupart des exceptions usuelles ne comportent pas de méthodes en plus de celles déclarées dans Exception.
Dog Eata est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2008, 14h57   #168
Membre à l'essai
 
Inscription : mars 2008
Messages : 20
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mars 2008
Messages : 20
Points : 22
Points : 22
Par défaut Mouuuai

Citation:
Envoyé par Gargamail Voir le message
Contre.
À mon avis,
  • soit il y a une classe/interface mère pour les exceptions qu'on veut regrouper,
  • soit les exceptions sont mal définies et cette classe/interface mère devrait exister.
Je suis de cet avis. Ce n'est pas peine de compliquer les choses. Si c'est vraiment le même traitement, il suffit de le mutualiser dans une méthode privée.
fridobox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2009, 14h12   #169
Inactif
 
Alexandre Jaquet
Inscription : mai 2006
Messages : 2 199
Détails du profil
Informations personnelles :
Nom : Alexandre Jaquet
Âge : 32

Informations forums :
Inscription : mai 2006
Messages : 2 199
Points : 1 904
Points : 1 904
pourquoi pas un

catch(Exception ...exs) {

}
*alexandre* est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2009, 15h18   #170
Expert Confirmé
 
Avatar de Uther
 
Homme
Inscription : avril 2002
Messages : 2 299
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2002
Messages : 2 299
Points : 3 961
Points : 3 961
Déjà posé plusieurs fois.
J'ai la flemme de la refaire en complet mais avec un catch sur Exception, on va catcher toutes les exceptions y compris les exceptions unchecked(null pointeur, division par 0, ...) qui normalement ne sont pas interceptées.
Uther est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2009, 16h13   #171
Membre confirmé
 
Inscription : mai 2007
Messages : 232
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 232
Points : 255
Points : 255
Par défaut Solution adoptée par Sun

Selon les articles suivants, cette partie sera intégrée à Java 7 avec des | comme séparateurs:

http://tech.puredanger.com/2009/02/16/java7-update/
http://tech.puredanger.com/java7
https://jdk7.dev.java.net/
http://blogs.sun.com/theplanetarium/...ge_changes_for

ça pourrait faire l'objet d'un nouveau Thread unique pour tout java7, le débat sur les nouveautés java7 est obsolète?
deltree est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h22.


 
 
 
 
Partenaires

Hébergement Web