vasil1989 Δημοσ. 23 Οκτωβρίου 2011 Δημοσ. 23 Οκτωβρίου 2011 Παιδια δεν εχω μεγαλη εμπειρια απο java...τωρα παλευω...εχω ενα θεμα:εχω αυτο το κωδικα: String n = JOptionPane.showInputDialog(null, "Give name"); θελω να χρησιμοποιησω try catch ωστε αν δινει καποιος αντι για ονομα αριθμο να του βγαζει ενα μηνυμα ξερω γω:βαλτε ονομα
nexuss Δημοσ. 23 Οκτωβρίου 2011 Δημοσ. 23 Οκτωβρίου 2011 Για αυτό που ζητάς δεν χρειάζεται απαραίτητα 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"); }
vasil1989 Δημοσ. 23 Οκτωβρίου 2011 Μέλος Δημοσ. 23 Οκτωβρίου 2011 Σε ευχαριστω πολυ απλα μας εχουν βαλει ασκηση και μας το ζητησαν με try catch....αν μπορεις
Timonkaipumpa Δημοσ. 24 Οκτωβρίου 2011 Δημοσ. 24 Οκτωβρίου 2011 Αρχίσαμε πάλι με τις ασκήσεις και τις λύσεις στο insomnia; Γιατί δεν ρωτάς τον καθηγητή σου; Σίγουρα θα σου πει κάτι που θα είναι απείρως πιο χρήσιμο από ό,τι διαβάσεις εδώ. Και νισάφι πια. Έχετε να κάνετε κάποιες ρημαδοασκήσεις. Κάντε τις, παρακολουθήστε κανένα μάθημα και μην τα θέλετε όλα στο πιάτο και από άλλους! Εάν δεν σας ενδιαφέρει το αντικείμενο πηγαίνετε σε άλλη σχολή.
DuckJump Δημοσ. 24 Οκτωβρίου 2011 Δημοσ. 24 Οκτωβρίου 2011 εδω ειναι 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"; } } μην μου απαντησεις αδελφε δεν θα κανω καν το καπο να το δω δεν εχω καμια ορεξη για τσακομους
GKNSB Δημοσ. 24 Οκτωβρίου 2011 Δημοσ. 24 Οκτωβρίου 2011 Είναι κάτι πολύ βασικό και για να είναι σαν άσκηση καλό θα ήταν να το κάνεις μόνος σου. Δεν θα έλεγα να πας στον καθηγητή σου καλύτερα κάτσε ψάξε λίγο online για try/catch και exceptions
xlomo Δημοσ. 24 Οκτωβρίου 2011 Δημοσ. 24 Οκτωβρίου 2011 Το String n = JOptionPane.showInputDialog(null, "Give name"); Δεν πετάει Exception και δεν χρειάζεται try-catch από την άλλη ο έλεγχος για το αν τα δεδομένα του χρήστη είναι αριθμός μπορεί να πετάξουν exception όπως π.χ. το int i = Integer.valueOf(n); το οποίο προσπαθεί να μετατρέψει έναν ακέραιο αποθηκευμένο σε string σε ακέραιο π.χ. το "3" σε 3. Μάντεψε τι γίνεται αν η παραπάνω εντολή συναντήσει κάποιο πρόβλημα όπως αλφαβητικά δεδομένα....... η συνέχεια δική σου.
Timonkaipumpa Δημοσ. 24 Οκτωβρίου 2011 Δημοσ. 24 Οκτωβρίου 2011 Ποτέ δεν μπορούσα να καταλάβω την λογική των ανθρώπων... που απαντάνε και μετά σου λένε "μην απαντήσεις, δεν θα το δω καν"... Ό,τι να 'ναι; Σαν κάτι γκομενίτσες που σε παίρνουν τηλέφωνο, σου λένε κάτι ίσα ίσα να σε τσαντίσουν και μετά στο κλείνουν! Πάντως... οφείλω να ομολογήσω πως αυτή η συμπεριφορά με πάει πίσω στο γυμνάσιο!! Α.. ωραία χρόνια τότε...!
nexuss Δημοσ. 24 Οκτωβρίου 2011 Δημοσ. 24 Οκτωβρίου 2011 Παιδιά, μην ξεφεύγουμε. Κάποιος έκανε μια ερώτηση, ας μείνουμε σε αυτό και ας τον βοηθήσουμε. Εφόσον πρόκειται για εργασία σε μάθημα, δε θα του δώσουμε αμάσητη τροφή (δεν είναι ό,τι καλύτερο κάποιος να κάνει απλά ένα copy-paste και να παίρνει βαθμούς), αλλά ας τον κατευθύνουμε όσοι μπορούμε να βρει την απάντηση μόνος του. Λοιπόν vasil1989, έχεις καταφέρει τίποτα;
vasil1989 Δημοσ. 26 Οκτωβρίου 2011 Μέλος Δημοσ. 26 Οκτωβρίου 2011 Παιδια να σας πω την αληθεια δεν το καταφερα ευχαριστω πολυ παντως για τη βοηθεια σας!
nexuss Δημοσ. 26 Οκτωβρίου 2011 Δημοσ. 26 Οκτωβρίου 2011 Αν θες, μας λες που έχεις κολλήσει για να σου πούμε ιδέες πώς να προχωρήσεις την εργασία σου.
Directx Δημοσ. 26 Οκτωβρίου 2011 Δημοσ. 26 Οκτωβρίου 2011 θελω να χρησιμοποιησω 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)); } Καλή συνέχεια!!
nexuss Δημοσ. 26 Οκτωβρίου 2011 Δημοσ. 26 Οκτωβρίου 2011 Καλή και γρήγορη η λύση του Directx, απλά σε κάποια πιο σοβαρή εφαρμογή, τις εξαιρέσεις θα πρέπει να τις χρησιμοποιείς για περιπτώσεις οι οποίες δεν ανήκουν στην "κανονική" ροή του προγράμματος (για αυτό και το όνομά τους - εξαιρέσεις). Στο παράδειγμά μας η μη κανονική ροή είναι όταν κάποιος γράψει νούμερα αντί για το όνομά του - αυτό θα πρέπει να μπει στο catch, ενώ στο try θα πρέπει να υπάρχει η κανονική ροή (το ότι κάποιος έγραψε το όνομά του χωρίς νούμερα). Αυτά αν θέλεις να είσαι 100% σωστός αρχιτεκτονικά. Γενικότερα όμως η λύση αυτή για το πρόβλημά σου (το οποίο είναι απλό) είναι αρκετά καλή.
παπι Δημοσ. 26 Οκτωβρίου 2011 Δημοσ. 26 Οκτωβρίου 2011 τις εξαιρέσεις θα πρέπει να τις χρησιμοποιείς για περιπτώσεις οι οποίες δεν ανήκουν στην "κανονική" ροή του προγράμματος offtopic Τις εξαιρεσεις θα πρεπει να τις χρησιμοποιειτε απο την αρχη εως το τελος καθε συναρτησεις.- Αν ειναι δυνατον, εχω κατεβασει καποια προγρμματα σε net τα οποια μου πεταξαν μαμισιο exception!! Δηλαδη αν τα εγραφαν σε τιποτα winapi τι θα γινοταν; Θα επαιρνε φωτια το σπιτι μου;
xlomo Δημοσ. 26 Οκτωβρίου 2011 Δημοσ. 26 Οκτωβρίου 2011 Οι εξαιρέσεις στην Java είναι φτιαγμένες για να συμβαίνουν, ούτε κανονική ούτε λάθος ροή έχει το πρόγραμμα, ούτε τρέχει κάτι αν προκύψει εξαίρεση έξω από try-catch. Και σίγουρα το να βάλεις όλο τον κώδικα σε try catch είναι τουλάχιστον λάθος. Η λύση του Directx είναι μία χαρά αν και όνομα dimitris24 θα γίνει δεκτό παρόλο που περιέχει αριθμούς.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα