Αντιμετώπιση προβλημάτων

Γνώση Υπολογιστών >> Αντιμετώπιση προβλημάτων >  >> Αντιμετώπιση προβλημάτων Σφάλματα υπολογιστή σας

Πώς διορθώνετε το σφάλμα χρόνου εκτέλεσης 380;

Σφάλμα χρόνου εκτέλεσης '380' σε Visual Basic (και παρόμοιες γλώσσες) σημαίνει "Μη έγκυρη αξία ιδιοκτησίας" Αυτό το σφάλμα εμφανίζεται όταν προσπαθείτε να αντιστοιχίσετε μια τιμή σε μια ιδιότητα που δεν ισχύει για αυτήν την ιδιότητα. Η λύση εξαρτάται εξ ολοκλήρου από το * όπου συμβαίνει το σφάλμα και * τι εμπλέκεται η ιδιοκτησία.

Ακολουθεί μια ανάλυση για το πώς να αντιμετωπίσετε και να το διορθώσετε:

1. Προσδιορίστε την ιδιότητα και την αξία:

* Το μήνυμα σφάλματος: Οι πιο κρίσιμες πληροφορίες είναι συνήθως * μέσα * το ίδιο το μήνυμα σφάλματος. Μπορεί να σας πει ποιο αντικείμενο και ιδιοκτησία προκαλούν το πρόβλημα. Δώστε ιδιαίτερη προσοχή!

* Αριθμός γραμμής: Το μήνυμα σφάλματος περιλαμβάνει συνήθως έναν αριθμό γραμμής στον κωδικό σας. Αυτό δείχνει απευθείας στην προβληματική γραμμή.

* Debugging: Χρησιμοποιήστε το Debugger Visual Basic (ή ισοδύναμο στο IDE σας). Ρυθμίστε τα σημεία διακοπής κοντά στον αριθμό γραμμής που υποδεικνύεται και περάστε μέσω του κώδικα σας για να δείτε τις τιμές των μεταβλητών λίγο πριν εμφανιστεί το σφάλμα. Επιθεωρήστε την αξία της ιδιοκτησίας σε αυτό το σημείο.

2. Κοινές αιτίες και λύσεις:

* Εσφαλμένος τύπος δεδομένων: Προσπαθείτε να αντιστοιχίσετε μια τιμή του λανθασμένου τύπου δεδομένων σε μια ιδιότητα. Για παράδειγμα, προσπαθώντας να εκχωρήσετε μια συμβολοσειρά σε μια αριθμητική ιδιότητα ή έναν αριθμό εκτός του επιτρεπόμενου εύρους (π.χ., αναθέτοντας μια αρνητική τιμή σε μια ιδιότητα που δέχεται μόνο θετικούς αριθμούς).

* Λύση: Ελέγξτε την τεκμηρίωση της ιδιοκτησίας για να προσδιορίσετε τον αναμενόμενο τύπο δεδομένων και το εύρος της. Βεβαιωθείτε ότι η τιμή που εκχωρείτε είναι του σωστού τύπου και εμπίπτει στο αποδεκτό εύρος. Χρησιμοποιήστε τις λειτουργίες μετατροπής τύπου (όπως το `cint`,` cSTR ', κλπ.) Εάν είναι απαραίτητο.

* Δείκτης εκτός ορίων: Προσπαθείτε να έχετε πρόσβαση σε ένα στοιχείο σε έναν πίνακα ή μια συλλογή που δεν υπάρχει. Για παράδειγμα, η πρόσβαση στο `myarray (10)` όταν το `myarray 'έχει μόνο 5 στοιχεία.

* Λύση: Επαληθεύστε ότι ο δείκτης βρίσκεται εντός του έγκυρου εύρους (για παράδειγμα 0 έως `Ubound (MyArray) 'για παράδειγμα). Προσθέστε ελέγχους για να αποφύγετε την πρόσβαση στους μη έγκυρους δείκτες.

* Αναφορά αντικειμένου μηδέν: Προσπαθείτε να έχετε πρόσβαση σε μια ιδιότητα ενός αντικειμένου που δεν έχει αρχικοποιηθεί σωστά ή δεν είναι τίποτα.

* Λύση: Βεβαιωθείτε ότι το αντικείμενο δημιουργείται και έχει εκχωρηθεί έγκυρη αναφορά πριν προσπαθήσετε να αποκτήσετε πρόσβαση στις ιδιότητές του. Χρησιμοποιήστε τις δηλώσεις `if` για να ελέγξετε για« τίποτα »πριν από την πρόσβαση σε ιδιότητες:

`` vb.net

Εάν το MyObject δεν είναι τίποτα τότε

MyObject.MyProperty ="κάποια τιμή"

Τέλος εάν

`` `

* Μη έγκυρο μήκος συμβολοσειράς: Ορισμένες ιδιότητες έχουν περιορισμούς μήκους. Μπορεί να προσπαθείτε να αντιστοιχίσετε μια συμβολοσειρά που υπερβαίνει το επιτρεπόμενο μήκος.

* Λύση: Ελέγξτε την τεκμηρίωση για όρια μήκους και περικοπή ή τροποποιήστε ανάλογα τη συμβολοσειρά σας.

* Λανθασμένη τιμή enum: Εάν το ακίνητο αναμένει μια απαριθμημένη αξία, ενδέχεται να παρέχετε ένα μη έγκυρο μέλος του Enum.

* Λύση: Ελέγξτε τον ορισμό Enum και βεβαιωθείτε ότι χρησιμοποιείτε ένα έγκυρο μέλος.

* Σφάλματα εισόδου/εξόδου αρχείου: Το ακίνητο μπορεί να σχετίζεται με ένα αρχείο ή μια διαδρομή. Ελέγξτε εάν υπάρχει το αρχείο, έχετε τα σωστά δικαιώματα, η διαδρομή είναι έγκυρη, κλπ.

* Λύση: Χρησιμοποιήστε το χειρισμό σφαλμάτων (π.χ., `on Errom Resume Next` - * Χρησιμοποιήστε προσεκτικά * ή δομημένο χειρισμό εξαιρέσεων` try ... catch`) για να χειριστείτε με χάρη τα πιθανά λάθη αρχείων.

3. Παράδειγμα σεναρίου και διορθώστε:

Ας πούμε ότι έχετε σφάλμα 380 σε αυτήν τη γραμμή:

`` vb.net

Textbox1.text =myveryLongString

`` `

Και το `myverylongstring` υπερβαίνει το μέγιστο μήκος που επιτρέπεται για το` textbox1.text`.

Η λύση θα ήταν είτε να περικοπεί τη συμβολοσειρά είτε να χρησιμοποιήσει έναν πιο κατάλληλο έλεγχο για τον χειρισμό μακρού κειμένου. Για παράδειγμα:

`` vb.net

Εάν ο Len (myverylongstring)> textbox1.maxlength τότε

TextBox1.Text =Αριστερά (MyveryLongString, TextBox1.MaxLength)

Αλλού

Textbox1.text =myveryLongString

Τέλος εάν

`` `

Συνοπτικά: Για να διορθώσετε το σφάλμα 380, πρέπει να εξετάσετε προσεκτικά τον κώδικα γύρω από τον αριθμό γραμμής που αναφέρεται στο μήνυμα σφάλματος, να προσδιορίσετε την εμπλεκόμενη ιδιότητα και να διασφαλίσετε ότι η τιμή που αναθέτετε είναι έγκυρη και κατάλληλη για αυτήν την ιδιοκτησία. Χρησιμοποιήστε το Debugger για να εντοπίσετε το πρόβλημα και να ελέγξετε τους τύπους δεδομένων, τις περιοχές και τις αναφορές αντικειμένων. Συμβουλευτείτε πάντα την τεκμηρίωση για το συγκεκριμένο αντικείμενο και την ιδιοκτησία με την οποία εργάζεστε.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα