niknax Δημοσ. 11 Μαρτίου 2008 Δημοσ. 11 Μαρτίου 2008 Καλησπέρα σε όλους.Κάνω μια άσκηση από το βιβλίο που θέλει να δείξει τη χρήση της switch.Δεν παραθέτω τον κώδικα γιατί είναι αρκετά μεγάλος ,αλλά ενώ στο compiling όλα είναι καλά,όταν κάνω run δεν τρέχει και μου βγάζει τα εξής: Exception in thread "main" java.util.MissingFormatArgumentException: Format specifier 's' at java.util.Formatter.format(Formatter.java:2429) at java.io.PrintStream.format(PrintStream.java:899) at java.io.PrintStream.printf(PrintStream.java:800) at Vathmologia.inputGrades(Vathmologia.java:57) at GradeBookTest.main(GradeBookTest.java:16) Java Result: 1 Ξέρει κανείς τι σημαίνουν αυτά και γιατί ο compiler δεν αναγνωρίζει αυτά τα λάθη????:
alex2005 Δημοσ. 11 Μαρτίου 2008 Δημοσ. 11 Μαρτίου 2008 Αυτό ονομάζεται exception ή runtime error. Αυτό σημαίνει ότι δεν έχεις συντακτικό λάθος (που θα το αναγνώριζε ο compiler), απλά έχεις κάποιο λογικό λάθος ή απλά κάτι πήγε στραβά στην εκτέλεση. Όλα τα προγράμματα "πετάνε" exceptions και είναι απόλυτα λογικό. Το θέμα είναι να τα κάνεις catch κάνοντας(παράδειγμα): try{ .... }catch(java.util.MissingFormatArgumentException e){....} catch(java.util.NullPointerException e){....} finally{....} Και αυτά όταν ΜΠΟΡΕΙ να πάει κάτι λάθος κατά την εκτέλεση του προγράμματος. Αν έχεις κάνει πατάτα και πετάει πάντα exception είναι άλλο το ζήτημα.
Legionnaire Δημοσ. 12 Μαρτίου 2008 Δημοσ. 12 Μαρτίου 2008 Αυτά τα νούμερα στο τέλος κάθε γραμμής π.χ. ":57" είναι η γραμμή μέσα στο αρχείο της συγκεκριμένης κλάσης που εντοπίστηκε το πρόβλημα. Εδώ βλέπουμε ότι στην γραμμή 57 της κλάσης Vathmologia και στην συνάρτηση inputGrades συνέβη το πρόβλημα. Αυτό πιστεύω ότι σε βοηθάει αρκετά!
alex2005 Δημοσ. 12 Μαρτίου 2008 Δημοσ. 12 Μαρτίου 2008 Ναι αυτοί οι αριθμοί στο τέλος είναι ο αριθμός της γραμμής στον κώδικά. Οπότε καλά τα λες.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.