En particulier, existe-t-il une sous-classe Exception
utilisée dans ces circonstances?Quelle est l'exception standard à lancer en Java pour les opérations non prises en charge/implémentées?
Répondre
java.lang.UnsupportedOperationException
pour indiquer que Jetés l'opération demandée n'est pas pris en charge.
ignorer ce ridicule "cela fait partie de la structure des collections" c'est dans le paquet 'java.lang.', le JavaDoc dit explicitement que c'est pour ça. –
@JarrodRoberson OK, cette instruction devrait vraiment être supprimée de la documentation de classe dans ce cas. L'exception semble être utilisée par d'autres paquets. Je suppose que si Oracle le fait, alors nous devrions le faire. Je vais déposer un rapport de bug. –
Si vous voulez une plus grande granularité et une meilleure decription, vous pouvez utiliser NotImplementedException de commons-lang
Attention: avant les versions 2.6 et après les versions 3.2, seulement.
Différencier entre les deux cas, vous avez nommé:
Pour indiquer que l'opération demandée est pas prise en charge et très probablement ne le sera jamais, jeter un
UnsupportedOperationException
.Pour indiquer l'opération demandée n'a pas encore été mis en œuvre, choisir entre ceci:
Utilisez le
NotImplementedException
de apache commons-lang qui était disponible dans commons-lang2 et a été ajouté à nouveau commons-lang3 en version 3.2.Créez le vôtre
NotImplementedException
.Lancez un
UnsupportedOperationException
avec un message du type "Non implémenté".
Je pars avec ça, parce que cela me semble raisonnable. "Pourtant" ou "jamais" indiqué par l'Exception donne une idée sur la façon de réagir à ce sujet. – sschrass
#s 1 ou 2 sont grandement préférables en pratique.# 3 capture la distinction sémantique entre "non supporté" et "non implémenté", mais avoir une classe séparée facilite la recherche rapide pour vérifier que vous n'avez pas oublié d'implémenter tout ce que vous devriez faire avant de vous engager. –
Si vous créez une nouvelle fonction (non encore mis en œuvre) dans NetBeans, il génère un corps de méthode avec la déclaration suivante:
throw new java.lang.UnsupportedOperationException("Not supported yet.");
Par conséquent, je vous recommande d'utiliser le UnsupportedOperationException .
- 1. Plates-formes non prises en charge pour java.awt.Desktop.getDesktop()
- 2. prises de fermeture en python
- 3. de quelle bibliothèque graphique aurais-je besoin pour lancer java?
- 4. comment lancer du CRT en java?
- 5. Detect langues prises en charge mobiles
- 6. Comment lancer une liste en utilisant des génériques en Java?
- 7. Quelle partie de l'API Java SE est écrite en Java?
- 8. Fonction d'arrêt des prises Berkley, quelle est l'importance?
- 9. Comment les prises Java fonctionnent-elles avec les IP publiques?
- 10. JBoss Messaging prend-il en charge les clients non Java?
- 11. Opérations atomiques en C++ pour les structures sans verrou
- 12. cross-browser XML standard de traitement en Java Script
- 13. Quelle est l'approche standard pour implémenter un commutateur booléen ponctuel?
- 14. Opérations bit à bit: ressources en ligne?
- 15. URLConnection FileNotFoundException pour les sources de port HTTP non standard
- 16. Opérations hexadécimales en C#
- 17. Quelle est la meilleure infrastructure de données à utiliser en Java pour une liste "multidimensionnelle"?
- 18. Quelle est la méthode la plus rapide pour lire à partir d'un fichier texte en Java?
- 19. S'assurer que toutes les exceptions sont prises en compte lors de l'utilisation de PHP
- 20. Comment détecter si l'imprimante est connectée à votre ordinateur ou non en Java?
- 21. Est-il nécessaire de mettre en cache les opérations courantes pour -drawRect: sur l'iPhone?
- 22. emplacement standard des ressources non-code pour les paquets python
- 23. Web Service lancer exception en utilisant Axis2 Java
- 24. Quelles sont les entités de caractères prises en charge pour les commentaires XML?
- 25. Suppression de répertoires non vides en Java
- 26. Quelle est la méthode standard pour gérer la cartographie des URL pour JavaServer Faces?
- 27. Sur les blocs d'initialisation statiques et non statiques en Java
- 28. C bibliothèques non-standard
- 29. délégués standard en C#
- 30. Quelle est la manière standard de faire un no-op en python?
Est-il approprié d'utiliser lorsqu'une classe n'implémente pas une méthode, mais que les classes enfants peuvent le faire? En d'autres termes, avoir une méthode abstraite dans une classe non-abstraite. – osa
@SergeyOrshanskiy C'est utile quand, selon la façon dont vous construisez un objet, vous devez créer une classe anonyme qui implémente une interface afin d'instancier une variable membre, mais vous ne voulez pas qu'elle soit utilisée. Si vous le définissez sur 'null' et que vous l'avez accidentellement utilisé (ou quelqu'un d'autre), vous obtiendrez 'NullPointerExceptions' qui est moins évident que' UnsupportedOperationExceptions' dans ce cas. Juste un exemple. – 2rs2ts