Précédent   Forum du club des développeurs et IT Pro > 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
 
Outils de la discussion
Vieux 21/12/2007, 10h33   #61
djo.mos
Expert Confirmé Sénior
 
Avatar de djo.mos
 
Inscription : octobre 2004
Messages : 4 678
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 4 678
Points : 7 003
Points : 7 003
mouaïii (pour, mais avec reserve).
Comme la majorité: le principe est bon, la syntaxe est un peu à revoir.
En y réfléchissant, j'ai pas trouvé autre chose que le célebrissime virgule. Mais c'est pas très génial non plus
__________________
Mon Blog | Mes Cours | Moi sur twitter
djo.mos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 13h44   #62
jproto
Membre éclairé
 
Inscription : décembre 2005
Messages : 315
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : décembre 2005
Messages : 315
Points : 300
Points : 300
Je suis pour. Et sans vouloir lever une nouvelle polémique qui semble choquer beaucoup, je dois admettre que personnellement je trouve la notation « | » (façon opérateur logique) tout à fait explicite.
jproto est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 13h57   #63
djo.mos
Expert Confirmé Sénior
 
Avatar de djo.mos
 
Inscription : octobre 2004
Messages : 4 678
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 4 678
Points : 7 003
Points : 7 003
Citation:
Envoyé par djo.mos Voir le message
mouaïii (pour, mais avec reserve).
Comme la majorité: le principe est bon, la syntaxe est un peu à revoir.
En y réfléchissant, j'ai pas trouvé autre chose que le célebrissime virgule. Mais c'est pas très génial non plus
Encore pour, mais après m'avoir documenté sur la chose, je retire tout ce que je viens de dire sur la syntaxe (le fameux, enfin, le pauvre |): c'est tout à fait compréhensible du moment que c'est réalisé en fait par disjonction de types.
__________________
Mon Blog | Mes Cours | Moi sur twitter
djo.mos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2007, 06h38   #64
Uther
Expert Confirmé Sénior
 
Avatar de Uther
 
Homme
Inscription : avril 2002
Messages : 2 676
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2002
Messages : 2 676
Points : 5 103
Points : 5 103
Je rajouterai contre le | qu'il est incohérent avec le reste de ce qui est fait en JAVA. C'est illogique d'utiliser le | pour les catch si on ne fait pas également:
Code :
1
2
3
4
5
class MaClasse implements Serializable & Clonable & Comparable {
    public void maFonction() throws IOException | NullPointerException{
        ...
    }
}
Uther est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2007, 12h19   #65
azalsup
Membre habitué
 
Inscription : novembre 2007
Messages : 129
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 129
Points : 131
Points : 131
ca marche tres bien en python pourquoi pas en java
azalsup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2007, 11h49   #66
djo.mos
Expert Confirmé Sénior
 
Avatar de djo.mos
 
Inscription : octobre 2004
Messages : 4 678
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 4 678
Points : 7 003
Points : 7 003
Bonjour.
Citation:
Envoyé par azalsup Voir le message
ca marche tres bien en python pourquoi pas en java
Bah ... peut être que parceque Java est très différent de Python et ce sur tous les plans ?
Bref, ce genre de raisonnement n'est pas valable, sinon, on finirait par avoir une sorte de mélange hétérogène de trucs empreintés à d'autres langages et qui ne collent pas forcément dans la logique de Java.
__________________
Mon Blog | Mes Cours | Moi sur twitter
djo.mos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2007, 17h23   #67
sterix92
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 143
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 143
Points : 35
Points : 35
Bonjour,

Le fait d'attraper en une seule ligne plusieurs erreurs me semble être une bonne idée.

Il est eventuellement faisable de faire hériter les erreurs d'une classe abstraite dans le but d'en attraper une seule lorsqu'il est succeptible d'arriver plusieurs erreurs, supposons :

Code :
1
2
3
4
5
 
public class abstract Erreur extends IOException {}
 
public class ErreurType1 extends Erreur {}
public class ErreurType2 extends Erreur {}
sterix92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2007, 17h34   #68
djo.mos
Expert Confirmé Sénior
 
Avatar de djo.mos
 
Inscription : octobre 2004
Messages : 4 678
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 4 678
Points : 7 003
Points : 7 003
Bonjour
Citation:
Envoyé par sterix92 Voir le message
Il est eventuellement faisable de faire hériter les erreurs d'une classe abstraite dans le but d'en attraper une seule lorsqu'il est succeptible d'arriver plusieurs erreurs,
3 choses:
- C'est déjà le cas: Le type Throwable est le parent de toutes les exceptions, quel que'elles soient.
- T'as pas toujours le contrôle dessus: si tu travailles avec une API tièrce (tu le fais à 90% du temps ), tu peux pas leur imposer de lancer tel ou tel type d'exceptions.
- C'est pas très malin d'attraper un type d'esceptions plus général que ceux que tu attends.
__________________
Mon Blog | Mes Cours | Moi sur twitter
djo.mos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 15h09   #69
foued_scorpion
Membre à l'essai
 
Inscription : septembre 2006
Messages : 62
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 62
Points : 21
Points : 21
même remarque que dans la proposition d'un switch sur String.
Je trouvé enuiyeux de faire plusieurs catch et ne pas catcher tous les exceptions dans une seule.
foued_scorpion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 16h01   #70
g_rare
Membre chevronné
 
Avatar de g_rare
 
Inscription : novembre 2005
Messages : 610
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 610
Points : 649
Points : 649
Citation:
Envoyé par Uther Voir le message
D'ailleurs je viens de faire gaffe que pour ma proposition de syntaxe, il serait même plus logique de faire la déclaration de l'exception en premier:
Code :
catch(Exception e : InstantiationException, IllegalAccessException)
Cela ressemblerait plus à ce qui est fait dans un foreach (ca fait trop longtemps que je suis obligé de bosser sur du 1.4, j'avais oublié l'ordre correct):
Code :
for (String str : listeDeStrings)
POUR +1
__________________
" Jag blev dömd för fildelning och allt jag fick var en sketen t-shirt. " (tankafritt.nu)
PAS DE REPONSE PAR MESSAGE PRIVE ! Penser au bouton Résolu en bas de la discussion...
g_rare est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 20h32   #71
denisC
Expert Confirmé Sénior
 
Avatar de denisC
 
Inscription : février 2005
Messages : 4 066
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2005
Messages : 4 066
Points : 6 896
Points : 6 896
Pour le principe, mais effectivement la symtaxe pourrait etre améliorée, en particulier en utilisant l'ancetre des exceptions: cette information est a mon avis essentielle pour le compilateur, a moins de descendre tres bas par défaut (Throwable), mais je trouverai ça une très mauvaise pratique.
denisC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 11h40   #72
bgrand
Invité régulier
 
Inscription : janvier 2008
Messages : 23
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 23
Points : 8
Points : 8
On peut bien faire un catch(Exception e), mais parfois c'est vraiment trop générique, un niveau intermédiaire entre catcher toutes les exceptions une à une et catcher Exception, ça peut être utile, donc oui.
bgrand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 01h01   #73
®om
Expert Confirmé
 
Avatar de ®om
 
Inscription : janvier 2005
Messages : 2 807
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 807
Points : 2 821
Points : 2 821
Une fois, en écrivant plein de fois le même traitement pour des exceptions différentes (mais sans liens de parenté direct), je m'étais dit "ça serait vachement bien de faire ça"... Faudrait le proposer...

Jusqu'à ce que je me dise :
Code :
1
2
3
4
5
try {
    ...
} catch(ExceptionType1, ExceptionType2 e) {
    e.methode();
}
quel est le type apparent de e?
Throwable? Exception? La plus proche ancêtre commun?

Question à laquelle je n'ai pas trouvé de réponse satisfaisante...
®om est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 08h54   #74
bgrand
Invité régulier
 
Inscription : janvier 2008
Messages : 23
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 23
Points : 8
Points : 8
Effectivement, ça mérite réflexion... Pas non plus encore trouvé de solution qui me plaise tellement...

L'idée qui me dérange le moins (à défaut de me satisfaire...), serait que si on veut catcher plusieurs exceptions à la foi, alors le type de l'exception n'est pas trop important, vu qu'on veut un seul traitement pour toutes.

Par exemple :
Code :
1
2
3
4
5
try {
     ...
} catch ({ExceptionA, ExceptionB} e) {
     logger.error(e.getMessage);
}
Dans le cas ci-desssus, le e.getMessage() retournerait les e.getMessage() concaténés de chaque exception catchée, ou un message d'erreur citant les exceptions catchées, ou quelque chose comme ça. Mais le traitement même de l'erreur ne devrait pas dépendre d'un type ou de l'autre, vu qu'on veut un seul catch pour les deux types.

Si on veut pouvoir déterminer le type de e, alors y'a qu'à faire un catch pour chaque type d'exception... et du coup on oublie cette proposition 7.
bgrand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 10h38   #75
Uther
Expert Confirmé Sénior
 
Avatar de Uther
 
Homme
Inscription : avril 2002
Messages : 2 676
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2002
Messages : 2 676
Points : 5 103
Points : 5 103
En fait ce n'est pas l'idée du tout. On ne peut pas et ne pourra pas catcher pas plusieurs exceptions en meme temps. Ce serait totalement incompatible avec la notion actuelle d'exception qui interromp le block d'execution.
Il n'y a donc pas de question a ce poser de concaténation ou autre traitement particulier.

La variable ne ne peux en effet etre du type ExceptionA ou ExceptionB, il faudra obligatoirement un ancêtre commun, ça pourrait être Throwable mais c'est réducteur. Je pense que le plus judicieux serait de spécifier cet ancêtre(cf ma proposition).
Uther est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 12h43   #76
bgrand
Invité régulier
 
Inscription : janvier 2008
Messages : 23
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 23
Points : 8
Points : 8
C'est personnel, mais en fait je trouve très bien la situation actuelle. Je ne vois pas tellement de bonne solution pour catcher plusieurs exceptions en même temps. Si on a besoin de le faire, c'est sûrement que dans le try {...}, il y a une bonne quantité de code. Et que donc la gestion des exceptions pourrait être améliorée... On peut même implémenter ses propres exceptions pour ça.
bgrand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2008, 11h10   #77
jollyy
Membre à l'essai
 
Inscription : novembre 2006
Messages : 25
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 25
Points : 24
Points : 24
Je suis plutôt pour, mais je crois je la vrai solution au merdier serait de changer la hierarchie des class d'Exception.

Throwable devrait être unchecked.
Error extends throwable devrait contenir toutes les erreur découlant d'erreurs de programmation (NullPointerException --> NullPointerErrorr, etc...) et non pas de circonstance non controllées par le programmeur.
Exception devrait devenir unchecked (comme l'est RuntimeException).
RuntimeException devrait être supprimée et une nouvelle class CheckedException devrait être créée et utilisée avec modération.

Ceci enleverait 90% du code de traitement des erreur sans en réduire la fonctionnalité (qui peut me dire la dernière fois qu'il a codé autre chose qu'un rethrow ou un log de l'erreur).
jollyy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2008, 11h19   #78
adiGuba
Expert Confirmé Sénior
 
Avatar de adiGuba
 
Homme
Développeur Java/Web
Inscription : avril 2002
Messages : 12 654
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 654
Points : 22 428
Points : 22 428
Citation:
Envoyé par jollyy Voir le message
Throwable devrait être unchecked.
Throwable ne peut pas être unchecked, car cela impliquerait que toutes les classes filles serait unchecked, et donc qu'il n'y aurait plus de checked-exception...

Citation:
Envoyé par jollyy Voir le message
Error extends throwable devrait contenir toutes les erreur découlant d'erreurs de programmation (NullPointerException --> NullPointerErrorr, etc...) et non pas de circonstance non controllées par le programmeur.
Ca c'est ce que font les RuntimeException ! Les Errors concernent justement toutes les circonstances non controllées par le développeur...


Citation:
Envoyé par jollyy Voir le message
Exception devrait devenir unchecked (comme l'est RuntimeException).
RuntimeException devrait être supprimée et une nouvelle class CheckedException devrait être créée et utilisée avec modération.
Même remarque que pour Throwable : cela reviendrait à dire que toutes les classes filles sont unchecked...

Citation:
Envoyé par jollyy Voir le message
Ceci enleverait 90% du code de traitement des erreur sans en réduire la fonctionnalité (qui peut me dire la dernière fois qu'il a codé autre chose qu'un rethrow ou un log de l'erreur).
Je ne vois pas en quoi cela enlèverait 90% des codes de traitements...
Par contre cela casserait toute compatibilité à cause de la réorganisation de l'héritage des exceptions...


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 05/02/2008, 11h47   #79
rXpCH
Membre du Club
 
Inscription : décembre 2007
Messages : 165
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 165
Points : 40
Points : 40
Je suis totalement pour, il arrive qu'on ets plusieurs chose à catch... Mais le "|" m'as un peu choquer au début ^^ peros je préférerais un "," enfin bref...
rXpCH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2008, 15h22   #80
fatypunk
Membre du Club
 
Avatar de fatypunk
 
Inscription : octobre 2007
Messages : 71
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2007
Messages : 71
Points : 59
Points : 59
Pour avec la virgule et déclaration de classe explicite.
fatypunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h55.


 
 
 
 
Partenaires

Hébergement Web