Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Try...Catch...FINALLY. Μπορεί να μου πει κάποιος εάν υπάρχει διαφορά;

Îåêßíçóå áðü ôï ìÝëïò Panos Kousidis. Τελευταία δημοσίευση από το μέλος cap στις 07-02-2006, 15:33. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  07-02-2006, 12:44 9342

    Try...Catch...FINALLY. Μπορεί να μου πει κάποιος εάν υπάρχει διαφορά;

    Θα ήθελα να ρωτήσω εάν υπάρχει κάποια διαφορά στα ακόλουθα κομμάτια κώδικα

    Try
    'Κώδικας 1...
    Catch
    'Κώδικας 2...
    Finally
    'Κώδικας 3...
    End Try
    'Κώδικας 4...

    Try
    'Κώδικας 1...
    Catch
    'Κώδικας 2...
    End Try
    'Κώδικας 3...
    'Κώδικας 4...


    Panos
  •  07-02-2006, 13:04 9343 σε απάντηση της 9342

    Απ: Try...Catch...FINALLY. Μπορεί να μου πει κάποιος εάν υπάρχει διαφορά;

    Αν υποθέσουμε ότι ο 'Κώδικας 2 προκαλεί την έξοδο από τη συνάρτηση (πχ throw new Exceptio() ή return;), τότε ο κώδικας 3 και 4 της 2ης περίπτωσης δε θα εκτελεστούν.

    Όμως, στην αντίστοιχη πρώτη περίπτωση, αφού εκτελεστεί ο κώδικας της Catch, θα εκτελεστεί και ο Finally κωδικάς, και μετά θα γίνει ό,τι είναι να γίνει (throw new Exceptio() ή return; όπως προαναφέρθηκε).
    Μην αφήνετε τα media να σας "ταΐζουν"!
  •  07-02-2006, 13:42 9348 σε απάντηση της 9342

    Απ: Try...Catch...FINALLY. Μπορεί να μου πει κάποιος εάν υπάρχει διαφορά;

    Εξαρτάται από τον κώδικα που έχεις μέσα στο Catch Block

    Αν μέσα στο Catch υπάρχει ένα Exception τότε στην δεύτερη περίπτωση δεν θα φθάσει στο End Try οπότε δεν θα εκτελεστεί ο "κώδικας 3" και "κώδικας 4", ενώ στην πρώτη περίπτωση θα εκτελεστεί μόνο ο "κώδικας 3"

    Δοκίμασε αυτό:

    Περίπτωση 1

    Try

    Throw New Exception

    Catch ex As Exception

    Throw New Exception

    Finally

    MsgBox("Κώδικας 3")

    End Try

    MsgBox("Κώδικας 4")

     

    Περίπτωση 2

    Try

    Throw New Exception

    Catch ex As Exception

    Throw New Exception

    End Try

    MsgBox("Κώδικας 3")

    MsgBox("Κώδικας 4")

     

    Ελπίζω να σε βοήθησα λίγο.

     


    Σταύρος Βαλσάμης
    Προγραμματιστής
  •  07-02-2006, 13:53 9349 σε απάντηση της 9348

    Απ: Try...Catch...FINALLY. Μπορεί να μου πει κάποιος εάν υπάρχει διαφορά;

    Μάλλον με πρόλαβε ο Mitsaras.
    Δεν είχα δει το Post του πρίν απαντήσω.

    Σταύρος Βαλσάμης
    Προγραμματιστής
  •  07-02-2006, 14:59 9351 σε απάντηση της 9349

    Απ: Try...Catch...FINALLY. Μπορεί να μου πει κάποιος εάν υπάρχει διαφορά;

    OK, το δοκίμασα με Exit Sub στο Catch και κατάλαβα. Το Throw New Exception μέσα στο Catch έκανε το πρόγραμμα να σταματάει και να βγάζει error.
    Ευχαριστώ πολύ και τους δύο. Με καλύψατε απόλυτα.
    Panos
  •  07-02-2006, 15:33 9353 σε απάντηση της 9351

    Απ: Try...Catch...FINALLY. Μπορεί να μου πει κάποιος εάν υπάρχει διαφορά;

    Να θυμίσω οτι καλό θα ήταν να χαρακτηρίζουμε το θέμα ως "Εχει επιλυθεί" αν έχει απαντηθεί η ερώτησή μας. Επίσης να θυμίσω οτι μπορείτε να διαλέξετε ποιές απαντήσεις σας βοήθησαν πιό πολύ.
    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems