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

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

Δημοσ.

Παιδια δεν εχω μεγαλη εμπειρια απο java...τωρα παλευω...εχω ενα θεμα:εχω αυτο το κωδικα:

 

 

String n = JOptionPane.showInputDialog(null, "Give name");

θελω να χρησιμοποιησω try catch ωστε αν δινει καποιος αντι για ονομα αριθμο να του βγαζει ενα μηνυμα ξερω γω:βαλτε ονομα

Δημοσ.

Για αυτό που ζητάς δεν χρειάζεται απαραίτητα try-catch block. Μια απλή if συνθήκη αρκεί. Για δες αν σε καλύπτει ο παρακάτω κώδικας:

 

String n = JOptionPane.showInputDialog(null, "Give name");

boolean isNumber = false;

 

//checking to see if the string contains any numbers

for (int i = 0; i < 10; i++) {

if (n.contains(String.valueOf(i))) {

isNumber = true;

}

}

if (!isNumber) {

System.out.println("All ok");

} else {

System.out.println("Oups");

}

Δημοσ.

Αρχίσαμε πάλι με τις ασκήσεις και τις λύσεις στο insomnia;

 

Γιατί δεν ρωτάς τον καθηγητή σου; Σίγουρα θα σου πει κάτι που θα είναι απείρως πιο χρήσιμο από ό,τι διαβάσεις εδώ.

 

Και νισάφι πια. Έχετε να κάνετε κάποιες ρημαδοασκήσεις. Κάντε τις, παρακολουθήστε κανένα μάθημα και μην τα θέλετε όλα στο πιάτο και από άλλους! Εάν δεν σας ενδιαφέρει το αντικείμενο πηγαίνετε σε άλλη σχολή.

Δημοσ.

εδω ειναι forum ο καθενας μπορει να θεσει ενα ερωτημα , ασχετα με τι εχει να κανει αυτο .

Για να στο απαντησω προγραμματιστικα

 

#include <Learn how to speak >

 

using your brain before write

 

int main ()

{

 

theard post ; //μεταβλητη

 

if (post= "fail") // αμα ειναι ασχεστο σβηστο (τo post)

{

post="delete";

}

ifelse (post = "good "){ // αμα το θεωρεις καλο απαντα

post="write your solution";

}

else // αμα το θεωρεις χαζο μην απαντας(τo post)

{

post="don't write";

}

}

μην μου απαντησεις αδελφε δεν θα κανω καν το καπο να το δω δεν εχω καμια ορεξη για τσακομους

Δημοσ.

Είναι κάτι πολύ βασικό και για να είναι σαν άσκηση καλό θα ήταν να το κάνεις μόνος σου.

Δεν θα έλεγα να πας στον καθηγητή σου καλύτερα κάτσε ψάξε λίγο online για try/catch και exceptions

Δημοσ.

Το String n = JOptionPane.showInputDialog(null, "Give name"); Δεν πετάει Exception και δεν χρειάζεται try-catch

από την άλλη ο έλεγχος για το αν τα δεδομένα του χρήστη είναι αριθμός μπορεί να πετάξουν exception όπως π.χ. το

int i = Integer.valueOf(n);

το οποίο προσπαθεί να μετατρέψει έναν ακέραιο αποθηκευμένο σε string σε ακέραιο π.χ. το "3" σε 3.

Μάντεψε τι γίνεται αν η παραπάνω εντολή συναντήσει κάποιο πρόβλημα όπως αλφαβητικά δεδομένα....... η συνέχεια δική σου.

Δημοσ.

Ποτέ δεν μπορούσα να καταλάβω την λογική των ανθρώπων... που απαντάνε και μετά σου λένε "μην απαντήσεις, δεν θα το δω καν"...

 

Ό,τι να 'ναι;

 

Σαν κάτι γκομενίτσες που σε παίρνουν τηλέφωνο, σου λένε κάτι ίσα ίσα να σε τσαντίσουν και μετά στο κλείνουν!

 

Πάντως... οφείλω να ομολογήσω πως αυτή η συμπεριφορά με πάει πίσω στο γυμνάσιο!! Α.. ωραία χρόνια τότε...!

Δημοσ.

Παιδιά, μην ξεφεύγουμε. Κάποιος έκανε μια ερώτηση, ας μείνουμε σε αυτό και ας τον βοηθήσουμε. Εφόσον πρόκειται για εργασία σε μάθημα, δε θα του δώσουμε αμάσητη τροφή (δεν είναι ό,τι καλύτερο κάποιος να κάνει απλά ένα copy-paste και να παίρνει βαθμούς), αλλά ας τον κατευθύνουμε όσοι μπορούμε να βρει την απάντηση μόνος του. Λοιπόν vasil1989, έχεις καταφέρει τίποτα;

Δημοσ.

θελω να χρησιμοποιησω try catch ωστε αν δινει καποιος αντι για ονομα αριθμο να του βγαζει ενα μηνυμα ξερω

Παιδια να σας πω την αληθεια δεν το καταφερα ευχαριστω πολυ παντως για τη βοηθεια σας!

 

Επειδή θεωρώ ότι καμία φορά ένα παράδειγμα μπορεί να βοηθήσει ουσιαστικά έναν νέο προγραμματιστή, αν υποθέσουμε ότι θες να ελέγξεις μέσο try & catch για το πότε ένα String αποτελείται μόνο από αριθμούς θα μπορούσες να χρησιμοποιήσεις την μέθοδο .valueOf(String) του Integer class που παρέχει η Java και το οποίο σε περίπτωση που συναντήσει κάποιο String το οποίο δεν μπορεί να μετατρέψει σε Integer τότε διακόπτει την εκτέλεση του προγράμματος με εξαίρεση "NumberFormatException", θεωρώντας ότι η εξαίρεση που παρουσιάζεται είναι το επιθυμητό (καθώς υποδεικνύει ότι το String μας περιέχει δεδομένα που δεν απαρτίζονται μόνο από αριθμούς).

 

Αν ήθελες να ελέγχεις και για άλλους αριθμητικούς τύπους πέραν του Integer θα μπορούσες να χρησιμοποιήσεις τα ανάλογα .valueOf που προσφέρονταν από τα ανάλογα class.

 

Ακολουθεί ένα απλό πρόγραμμα που εκμεταλλεύεται την εξαίρεση "NumberFormatException" ώστε να ξεχωρίσει μεταξύ ενός String που αποτελείται μόνο από integers ή από αλφαριθμητικούς χαρακτήρες.

 

>
       String strName = "123";
       
       try { 
           Integer.valueOf(strName);            
           /* To be here, then strName consists of digits entirely */
           JOptionPane.showMessageDialog(null, 
                   String.format("Cannot accept number \"%s\" for name!", strName));
       }catch(NumberFormatException e) { 
           /* OK, "strName" doesn't consists of digits entirely */
           JOptionPane.showMessageDialog(null, 
                   String.format("Name \"%s\" accepted", strName));
       }

 

Καλή συνέχεια!!

Δημοσ.

Καλή και γρήγορη η λύση του Directx, απλά σε κάποια πιο σοβαρή εφαρμογή, τις εξαιρέσεις θα πρέπει να τις χρησιμοποιείς για περιπτώσεις οι οποίες δεν ανήκουν στην "κανονική" ροή του προγράμματος (για αυτό και το όνομά τους - εξαιρέσεις). Στο παράδειγμά μας η μη κανονική ροή είναι όταν κάποιος γράψει νούμερα αντί για το όνομά του - αυτό θα πρέπει να μπει στο catch, ενώ στο try θα πρέπει να υπάρχει η κανονική ροή (το ότι κάποιος έγραψε το όνομά του χωρίς νούμερα). Αυτά αν θέλεις να είσαι 100% σωστός αρχιτεκτονικά. Γενικότερα όμως η λύση αυτή για το πρόβλημά σου (το οποίο είναι απλό) είναι αρκετά καλή.

Δημοσ.

τις εξαιρέσεις θα πρέπει να τις χρησιμοποιείς για περιπτώσεις οι οποίες δεν ανήκουν στην "κανονική" ροή του προγράμματος

 

offtopic

Τις εξαιρεσεις θα πρεπει να τις χρησιμοποιειτε απο την αρχη εως το τελος καθε συναρτησεις.- Αν ειναι δυνατον, εχω κατεβασει καποια προγρμματα σε net τα οποια μου πεταξαν μαμισιο exception!! Δηλαδη αν τα εγραφαν σε τιποτα winapi τι θα γινοταν; Θα επαιρνε φωτια το σπιτι μου;

Δημοσ.

Οι εξαιρέσεις στην Java είναι φτιαγμένες για να συμβαίνουν, ούτε κανονική ούτε λάθος ροή έχει το πρόγραμμα, ούτε τρέχει κάτι αν προκύψει εξαίρεση έξω από try-catch. Και σίγουρα το να βάλεις όλο τον κώδικα σε try catch είναι τουλάχιστον λάθος.

Η λύση του Directx είναι μία χαρά αν και όνομα dimitris24 θα γίνει δεκτό παρόλο που περιέχει αριθμούς.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...