Sto creando una classe personalizzata che implementa comparabili e mi piacerebbe lanciare qualche tipo di eccezione se qualcuno cerca di confrontare due oggetti che non sono confrontabili con la mia definizione. Esiste già un'eccezione valida nell'API o devo creare il mio?java "non confrontabile" eccezione?
risposta
Non che io sappia.
L'eccezione più accurato per rappresentare questo è probabilmente un IllegalArgumentException
: http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html
Probabilmente si dovrebbe anche essere implementando Comparable<CustomClass>
che impedirà ai chiamanti di fornire un'istanza della classe sbagliata.
Considera ClassCastException, è ciò che Java Collection Framework genera per tali situazioni. Questo è ciò che accade quando cerchiamo di aggiungere un Test1 non paragonabile ad un TreeSet
Exception in thread "main" java.lang.ClassCastException: Test1 cannot be cast to java.lang.Comparable
at java.util.TreeMap.compare(TreeMap.java:1188)
at java.util.TreeMap.put(TreeMap.java:531)
at java.util.TreeSet.add(TreeSet.java:255)
at java.util.AbstractCollection.addAll(AbstractCollection.java:334)
at java.util.TreeSet.addAll(TreeSet.java:312)
at java.util.TreeSet.<init>(TreeSet.java:160)
at Test1.main(Test1.java:9)
+1 per ClassCastException. Questo è il riferimento in compareTo javadoc: https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html#compareTo-T-. Ma idealmente, come dice Cory Kendall sopra, dovresti cercare di creare una gerarchia di classi che impedisca questo. – philo
- 1. Eccezione Java non rilevata?
- 2. Eccezione Java non rilevata
- 3. Eccezione URL Java non valida
- 4. java: non può rigenerare eccezione: non gestita di tipo eccezione eccezione
- 5. ColdFusion/Classe Java non trovata Eccezione
- 6. Java: eccezione di data non sostituibile
- 7. Webdriver Java: eccezione elemento non visibile
- 8. Ignora specifica eccezione java ...?
- 9. Java - Eccezione JSON Null
- 10. Java memoria esaurita Eccezione
- 11. imprevisto java eccezione SimpleDateFormat parse
- 12. Java: eccezione OutOfMemoryError e freeMemory()
- 13. eccezione del cursore mongodb - Java
- 14. java IO Eccezione: Flusso chiuso
- 15. Argomenti riga di comando Java non validi Eccezione
- 16. È possibile creare la mia Eccezione non controllata in Java?
- 17. Eccezione JDBC Java MySQL: "Operazione non consentita dopo ResultSet chiuso"
- 18. Epson Java Pos ADK Eccezione: non è inizializzata
- 19. Java blocco catch, eccezione intercettata non è definitiva
- 20. Eccezione Operazione non valida
- 21. Highcharts eccezione non rilevata
- 22. Eccezione Django non gestita
- 23. Eccezione non gestita
- 24. PHP "Eccezione non trovata"
- 25. Java: eccezione puntatore nullo quando unboxing Integer?
- 26. Errore di eccezione Java - Sqlite preparedStatement.setBlob
- 27. Eccezione senza stack trace in Java
- 28. Integer.parseint in Java, eccezione quando '+' viene prima
- 29. Eccezione Java EE: Nome java: comp non è associato in questo contesto
- 30. Hadoop in Windows: file non trovato eccezione
+1 per la '' interfaccia Comparable. –