2010-04-18 7 views
3

Parfois, lors de l'écriture de Java dans Eclipse, j'écris du code qui génère des avertissements. Une commune est-ce que je reçois quand l'extension de la classe Exception:Est-ce une bonne pratique de supprimer les avertissements?

public class NumberDivideException extends Exception { 

    public NumberDivideException() { 
     super("Illegal complex number operation!"); 
    } 

    public NumberDivideException(String s) { 
     super(s); 
    } 
} // end NumberDivideException 

L'avertissement:

La NumberDivideException classe sérialisable ne déclare pas un champ serialVersionUID static final de type long.

Je sais que cet avertissement est causé par mon échec à ... eh bien, il dit juste au-dessus. Je pourrais le résoudre en incluant le serialVersionUID, mais c'est une minuscule tâche d'une heure pour l'école; Je ne prévois pas le sérialiser de sitôt ...

L'autre option, bien sûr, est de laisser Eclipse ajouter .

Mais chaque fois que ma souris survole l'option Suppress, je me sens un peu coupable.

Pour la programmation en général, est-ce une bonne habitude de supprimer les avertissements?

(également, comme une question de côté, est l'ajout d'un « généré » serialVersionUID comme serialVersionUID = -1049317663306637382L; la bonne façon d'ajouter un serialVersionUID, ou dois-je déterminer le nombre d'une autre manière?)


EDIT : En voyant les réponses, il semble que ma question soit légèrement argumentative ... Désolé! Trop tard pour moi de supprimer si ...

Répondre

4

Il est très satisfaisant d'avoir un code de compilation avec des avertissements - et quand vous obtenez un, il se ensuite et peut vous alerter d'un problème dans le code

6

Dans le cas particulier de l'éclipse, plutôt que de supprimer les avertissements comme ils se produisent, je préfère configurer Eclipse pour émettre des avertissements qui m'intéressent et ignorer automatiquement toutes les instances de celles-ci. ne fais pas ça. Voir Windows -> Préférences -> Java -> Compilateur -> Erreur/Avertissements

Ceci est plutôt spécifique à Java, et je trouve que Java a tendance à avoir beaucoup plus d'avertissements que je ne me soucie pas de la plupart des autres langages. Dans d'autres langues, j'ai généralement tous les avertissements et les corrige au fur et à mesure qu'ils apparaissent

0

Vous ne devriez jamais supprimer les avertissements globalement, même un type particulier d'avertissement. Vous devriez également définir votre compilateur pour être aussi pointilleux que possible. Les avertissements sont là pour vous parler des problèmes qui peuvent exister. Vous pouvez refactoriser votre code pour vous en débarrasser ou, dans certaines langues, ajouter une sorte de directive pour ignorer un bit de code spécifique qui provoque un avertissement spécifique. Cela vous permettra de revoir un avertissement et de l'ignorer si vous savez que c'est OK.

+2

Puis-je respectueusement en désaccord? Eclipse, que l'OP utilise, a des options pour émettre des avertissements sur l'utilisation de fonctionnalités linguistiques utiles (par ex. Boxing/unboxing). Je trouve cela assez douloureux. – msandiford

+1

Tom, avez-vous programmé C ou C++ dans MSVC avec ses avertissements "utiles" sur les fonctions standard parfaitement normales? – KTC

+0

Oui J'ai utilisé de nombreux environnements C++/C différents. Il y a des directives de pré-processeur pour désactiver les avertissements ligne par ligne dans chacun de ceux que je connais. En ce qui concerne Eclipse, boxing/unboxing est quelque chose qui est potentiellement coûteux et devrait être un avertissement. Je pense juste qu'il est raisonnable de forcer le développeur à penser à chaque avertissement pendant 30 secondes et prendre une décision consciente de passer outre chaque occurrence. Ocassionally, le compilateur sait mieux. –

0

Quand cela est possible, supprimer les avertissements que sur une ligne particulière, ou - tout au plus - un fichier particulier.

Non seulement cela garantit-il que les avertissements que vous N'AIMERIEZ PAS vous parviennent, mais il sert également de note de conception explicite - indiquant à la personne suivante l'édition du code (ou vous-même dans un mois) étaient conscients du problème et ont délibérément décidé que ce code était acceptable. Cela évite à la prochaine personne d'avoir à évaluer à nouveau la situation.

(je ne sais pas assez sur Eclipse pour y arriver -. Ce principe général qui applique dans plusieurs langues)

1

Si c'est un programme que vous allez jamais regarder à nouveau, il paie pour faire les choses 'dans le bon sens' - et cela signifie ne pas supprimer les avertissements, mais les corriger.

Pour les devoirs scolaires, cependant, on vous demande souvent de réinventer la roue/de compléter des tâches triviales, et vous ne devriez donc pas avoir peur de «pirater» des choses ensemble. Sauf si vous êtes classé sur le style de codage ...

2

Vous devez supprimer les avertissements SEULEMENT si vous êtes absolument sûr de ce que vous faites et il vaudrait mieux que ce genre de chose soit documenté pour de futures modifications (java doc commentaires par exemple)

cette façon vous cacher les avertissements que vous connaissez des problèmes de cause et ne le ferai pas concentrer sur ceux qui causeront vous problens

Questions connexes