Προς το περιεχόμενο

Ο compiler δε βγάζει λάθος και το πρόγραμμα δεν τρέχει


niknax

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα σε όλους.Κάνω μια άσκηση από το βιβλίο που θέλει να δείξει τη χρήση της 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 δεν αναγνωρίζει αυτά τα λάθη????:

Δημοσ.

Αυτό ονομάζεται exception ή runtime error.

Αυτό σημαίνει ότι δεν έχεις συντακτικό λάθος (που θα το αναγνώριζε ο compiler), απλά έχεις κάποιο λογικό λάθος ή απλά κάτι πήγε στραβά στην εκτέλεση.

 

Όλα τα προγράμματα "πετάνε" exceptions και είναι απόλυτα λογικό.

Το θέμα είναι να τα κάνεις catch κάνοντας(παράδειγμα):

 

try{

....

}catch(java.util.MissingFormatArgumentException e){....}

catch(java.util.NullPointerException e){....}

finally{....}

 

Και αυτά όταν ΜΠΟΡΕΙ να πάει κάτι λάθος κατά την εκτέλεση του προγράμματος.

 

Αν έχεις κάνει πατάτα και πετάει πάντα exception είναι άλλο το ζήτημα.:-)

Δημοσ.

Αυτά τα νούμερα στο τέλος κάθε γραμμής π.χ. ":57" είναι η γραμμή μέσα στο αρχείο της συγκεκριμένης κλάσης που εντοπίστηκε το πρόβλημα. Εδώ βλέπουμε ότι στην γραμμή 57 της κλάσης Vathmologia και στην συνάρτηση inputGrades συνέβη το πρόβλημα.

 

Αυτό πιστεύω ότι σε βοηθάει αρκετά!

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...