Χειρισμός σφαλμάτων
Σημείωμα
Η συμπεριφορά που περιγράφεται σε αυτό το άρθρο είναι διαθέσιμη μόνο όταν η δυνατότητα προεπισκόπησης Διαχείριση σφαλμάτων σε επίπεδο τύπου μέσω των Ρυθμίσεων>Επερχόμενες δυνατότητες>Έκδοση προεπισκόπησης είναι ενεργοποιημένη. Περισσότερες πληροφορίες: Έλεγχος των δυνατοτήτων που έχουν ενεργοποιηθεί
Συμβαίνουν σφάλματα. Τα δίκτυα πέφτουν, ο χώρος αποθήκευσης γεμίζει, εμφανίζονται μη αναμενόμενες τιμές. Είναι σημαντικό η λογική σας να συνεχίσει να λειτουργεί σωστά μπροστά σε ενδεχόμενα ζητήματα.
Από προεπιλογή, τα σφάλματα εμφανίζονται στους τύπους μιας εφαρμογής και αναφέρονται στον τελικό χρήστη της εφαρμογής. Με αυτόν τον τρόπο, ο τελικός χρήστης γνωρίζει ότι συνέβη κάτι απροσδόκητο, μπορεί ενδεχομένως να επιδιορθώσει το πρόβλημα μόνος του με διαφορετική εισαγωγή ή μπορεί να αναφέρει το πρόβλημα στον κάτοχο της εφαρμογής.
Ως δημιουργός εφαρμογών, μπορείτε να ελέγξετε τα σφάλματα στην εφαρμογή σας:
- Εντοπισμός και χειρισμός ενός σφάλματος. Εάν υπάρχει πιθανότητα να παρουσιαστεί κάποιο σφάλμα, οι τύποι της εφαρμογής μπορούν να γραφτούν έτσι ώστε να εντοπίσετε τη συνθήκη σφάλματος και να προσπαθήσετε ξανά τη λειτουργία. Ο τελικός χρήστης δεν χρειάζεται να ανησυχεί ότι παρουσιάστηκε σφάλμα επειδή ο δημιουργός έλαβε υπόψη του τη δυνατότητα. Αυτό γίνεται με τις συναρτήσεις IfError, IsError, και IsErrorOrBlank εντός ενός τύπου.
- Αναφορά ενός σφάλματος. Εάν δεν γίνει χειρισμός ενός σφάλματος στον τύπο όπου παρουσιάστηκε, το σφάλμα εμφανίζεται ως φυσαλίδα στο πρόγραμμα χειρισμού app.OnError . Εδώ, το σφάλμα δεν μπορεί πλέον να αντικατασταθεί όπως έχει ήδη συμβεί και αποτελεί μέρος των υπολογισμών τύπου. Ωστόσο, μπορείτε να χρησιμοποιήσετε το App.OnError για να ελέγξετε τον τρόπο με τον οποίο αναφέρεται το σφάλμα στον τελικό χρήστη, συμπεριλαμβανομένης της διακοπής της αναφοράς του σφάλματος. Το App.OnError παρέχει επίσης ένα κοινό σημείο αποκοπής για την αναφορά σφαλμάτων σε ολόκληρη την εφαρμογή.
- Δημιουργία και αλλαγή σφάλματος. Τέλος, μπορεί να εντοπίσετε μια συνθήκη σφάλματος με τη δική σας λογική, μια συνθήκη που αφορά ειδικά την εφαρμογή σας. Χρησιμοποιήστε τη συνάρτηση Error για να δημιουργήσετε προσαρμοσμένα σφάλματα. Η συνάρτηση Error χρησιμοποιείται επίσης για την αλλαγή ενός σφάλματος μετά την ερώτηση σε IfError ή App.OnError.
Πώς να ξεκινήσετε
Ας ξεκινήσουμε με ένα απλό παράδειγμα.
- Δημιουργήστε μια νέα οθόνη σε μια εφαρμογή καμβά Power Apps.
- Εισαγάγετε ένα στοιχείο ελέγχου TextInput. Θα επιστρέψει στο προεπιλεγμένο όνομα TextInput1.
- Εισαγάγετε ένα στοιχείο ελέγχου Label.
- Επιλέξτε την ιδιότητα Text του στοιχείου ελέγχου Label στον τύπο
1/Value( TextInput1.Text )
Έχουμε ένα σφάλμα επειδή το προεπιλεγμένο κείμενο ενός στοιχείου ελέγχου TextInput είναι "Text input"
, το οποίο δεν είναι δυνατό να μετατραπεί σε αριθμό. Από προεπιλογή, αυτό είναι καλό: ο τελικός χρήστης θα λάβει μια ειδοποίηση ότι κάτι δεν λειτουργεί όπως ήταν αναμενόμενο στην εφαρμογή.
Προφανώς, δεν θέλουμε να εμφανίζεται σφάλμα χαιρετισμού στο χρήστη κάθε φορά που ξεκινάει αυτή η εφαρμογή. Το πιθανότερο το "Text input"
δεν είναι η σωστή προεπιλογή για πλαίσιο εισαγωγής κειμένου ούτως ή άλλως. Για να το λύσουμε αυτό, ας αλλάξουμε την ιδιότητα Default του στοιχείο ελέγχου TextInput σε:
Blank()
Τώρα έχουμε διαφορετικό σφάλμα. Οι μαθηματικές πράξεις με κενό, όπως η διαίρεση, θα εξωθήσουν την κενή τιμή στο μηδέν. Αυτό έχει πλέον ως αποτέλεσμα διαίρεση με μηδενικό σφάλμα. Για να διορθώσουμε αυτό το πρόβλημα, πρέπει να αποφασίσουμε ποια είναι η κατάλληλη συμπεριφορά για αυτήν την κατάσταση σε αυτήν την εφαρμογή. Η απάντηση μπορεί να είναι να εμφανίζεται κενό όταν το κείμενο που εισάγεται είναι κενό. Αυτό μπορούμε να το πετύχομε περιτυλίγοντας τον τύπο με τη συνάρτηση IfError:
IfError( 1/Value( TextInput1.Text ), Blank() )
Τώρα το σφάλμα αντικαθίσταται με μια έγκυρη τιμή και το διαφημιστικό πλαίσιο σφάλματος δεν εμφανίζεται. Ωστόσο, ενδέχεται να έχουμε προσπέραση, το IfError που χρησιμοποιήσαμε καλύπτει όλα τα σφάλματα, συμπεριλαμβανομένης της πληκτρολόγησης σε κακές τιμές, όπως. "hello"
Μπορούμε να αντιμετωπίσουμε αυτό το πρόβλημα συντονίζοντας το IfError να χειρίζεται την υπόθεση της διαίρεσης με το μηδέν μόνο και αλλάζοντας όλα τα άλλα σφάλματα:
IfError( 1/Value( TextInput1.Text ),
If( FirstError.Kind = ErrorKind.Div0, Blank(), Error( FirstError ) ) )
Επομένως, εκτελέστε την εφαρμογή και δοκιμάστε ορισμένες διαφορετικές τιμές.
Χωρίς καμία τιμή, όπως όταν ξεκινά η εφαρμογή, δεν εμφανίζεται απάντηση καθώς η προεπιλεγμένη τιμή είναι κενή, αλλά δεν εμφανίζεται κανένα σφάλμα καθώς το IfError αντικαθιστά τη διαίρεση με μηδενικό σφάλμα.
Εάν πληκτρολογήσουμε 4, θα έχουμε το αναμενόμενο αποτέλεσμα με 0,25:
Επίσης, εάν πληκτρολογήσουμε κάτι μη έγκυρο, όπως hello
, στη συνέχεια, θα εμφανιστεί ένα διαφημιστικό πλαίσιο σφάλματος:
Αυτό είναι ένα απλό εισαγωγικό παράδειγμα. Ο χειρισμός σφαλμάτων μπορεί να γίνει με πολλούς και διάφορους τρόπους, ανάλογα με τις ανάγκες της εφαρμογής:
- Αντί για ένα διαφημιστικό πλαίσιο σφάλματος, θα μπορούσαμε να εμφανίσουμε "#Error" , στο στοιχείο ελέγχου ετικέτας με τον τύπο. Για να διατηρήσουμε τους τύπους των υποκατάστατων με το πρώτο όρισμα σε IfError, πρέπει να μετατρέψουμε ρητά το αριθμητικό αποτέλεσμα σε συμβολοσειρά κειμένου με τη συνάρτηση Text.
IfError( Text( 1/Value( TextInput1.Text ) ), If( FirstError.Kind = ErrorKind.Div0, Blank(), "#Error" )
- Αντί να περιτυλίξουμε τη συγκεκριμένη παρουσία με το IfError, θα μπορούσαμε να έχουμε γράψει ένα κεντρικό πρόγραμμα χειρισμού App.OnError. Δεν μπορούμε να αντικαταστήσουμε τη συμβολοσειρά που εμφανίζεται με "#Error" καθώς το σφάλμα έχει ήδη συμβεί και το καθώς το σφάλμα έχει ήδη συμβεί και το App.OnError παρέχεται μόνο για τον έλεγχο αναφορών.
If( FirstError.Kind <> ErrorKind.Div0, Error( FirstError ) )
Μετάδοση σφαλμάτων
Τα σφάλματα περνούν μέσα από τύπους όπως και στο Excel. Για παράδειγμα, στο Excel, εάν το κελί A1
έχει τον τύπο =1/0
, τότε το A1 θα εμφανίσει την τιμή σφάλματος #DIV0!
:
Εάν το κελί A2
αναφέρεται στο A1
με έναν τύπο όπως =A1*2
, τότε το σφάλμα μεταδίδεται και μέσω αυτού του τύπου:
Το σφάλμα αντικαθιστά την τιμή που θα είχε υπολογιστεί διαφορετικά. Δεν υπάρχει αποτέλεσμα για τον πολλαπλασιασμό στο κελί A2
, παρά μόνο το σφάλμα από τη διαίρεση στο A1
.
Το Power Fx λειτουργεί με τον ίδιο τρόπο. Γενικά, εάν ένα σφάλμα παρέχεται ως όρισμα σε μια συνάρτηση ή τελεστή, η λειτουργία δεν θα λάβει χώρα και το σφάλμα εισόδου θα εμφανιστεί ως αποτέλεσμα της πράξης. Για παράδειγμα, το Mid( Text( 1/0 ), 1, 1 )
θα επιστρέψει ένα σφάλμα Διαίρεσης με το μηδέν, καθώς το πιο εσωτερικό σφάλμα περνά μέσα από τη συνάρτηση Text και τη συνάρτηση Mid:
Γενικά, τα σφάλματα δεν περνούν μέσα από τις ιδιότητες του στοιχείου ελέγχου του Power Apps. Ας επεκτείνουμε το προηγούμενο παράδειγμα με ένα πρόσθετο στοιχείο ελέγχου που εμφανίζεται εάν η ιδιότητα της πρώτης ετικέτας Text
είναι κατάσταση σφάλματος:
Είναι καλό τα σφάλματα να μην μεταδίδονται μέσω ενός στοιχείου ελέγχου, επειδή το σύστημα θα παρατηρεί σφάλματα κατά την εισαγωγή σε όλες τις ιδιότητες του στοιχείου ελέγχου. Το σφάλμα δεν θα χαθεί.
Οι περισσότερες συναρτήσεις και τελεστές ακολουθούν τον κανόνα "error in, error out", αλλά υπάρχουν ορισμένες εξαιρέσεις. Οι συναρτήσεις IsError, IsErrorOrBlank και IfError έχουν σχεδιαστεί να λειτουργούν με σφάλματα, ώστε να μην επιστρέφουν κάποιο σφάλμα ακόμα και αν περάσει μέσα τους.
Παρατήρηση σφαλμάτων
Τα σφάλματα δεν παρατηρούνται έως ότου χρησιμοποιηθεί η τιμή τους.
Το αποτέλεσμα είναι ότι οι συναρτήσεις If και Select ενδέχεται επίσης να μην επιστρέψουν ένα σφάλμα, εάν περάσει. Λάβετε υπόψη τον τύπο If( false, 1/0, 3 )
. Υπάρχει σφάλμα διαίρεσης με το μηδέν σε αυτόν τον τύπο, αλλά αφού το If
δεν λαμβάνει αυτόν τον κλάδο λόγω του false
, τα Power Fx και Power Apps δεν θα αναφέρουν σφάλμα:
Η χρήση της συνάρτησης Set με σφάλμα δεν θα αναφέρει σφάλμα στο σημείο που το σφάλμα τοποθετείται στη μεταβλητή. Για παράδειγμα στο Power Apps, ακολουθεί ένας τύπος στο App.OnStart που τοποθετεί ένα σφάλμα διαίρεσης με το μηδέν στη μεταβλητή x
:
Δεν γίνεται αναφορά σφάλματος, επειδή το x
δεν αναφέρεται. Ωστόσο, μόλις προσθέσουμε ένα στοιχείο ελέγχου ετικέτας και ορίσομυε την ιδιότητα Text στο x
, εμφανίζεται το σφάλμα:
Μπορείτε να παρατηρείτε σφάλματα εντός του τύπου με τις συναρτήσεις IfError, IsError, και IsErrorOrBlank. Με αυτές τις συναρτήσεις, μπορείτε να επιστρέψετε μια εναλλακτική τιμή, να κάνετε εναλλακτική ενέργεια ή να τροποποιήσετε το σφάλμα πριν την εφαρμογή και την αναφορά της.
Αναφορά σφαλμάτων
Μετά την παρατήρηση ενός σφάλματος, το επόμενο βήμα είναι η αναφορά του σφάλματος στον τελικό χρήστη.
Σε αντίθεση με το Excel, δεν υπάρχει πάντα ένα κατάλληλο μέρος για να εμφανίζεται το αποτέλεσμα ενός σφάλματος, καθώς το αποτέλεσμα του τύπου μπορεί να οδηγήσει μια ιδιότητα, όπως οι συντεταγμένες X και Y ενός στοιχείου ελέγχου για το οποίο δεν υπάρχει κατάλληλο μέρος για εμφάνιση κάποιου κειμένου. Κάθε κεντρικός υπολογιστής Power Fx ελέγχει τον τρόπο με τον οποίο εμφανίζονται εντέλει τα σφάλματα στον τελικό χρήστη και το πλήθος των στοιχείων ελέγχου που διαθέτει ο δημιουργός σε αυτήν τη διεργασία. Στο Power Apps, εμφανίζεται ένα διαφημιστικό πλαίσιο σφάλματος και το App.OnError χρησιμοποιείται για τον έλεγχο του πώς αναφέρεται το σφάλμα.
Είναι σημαντικό να σημειωθεί ότι το App.OnError δεν μπορεί να αντικαταστήσει το σφάλμα με τον ίδιο τρόπο που μπορεί να το αντικαταστήσει το IfError . Στο σημείο που εκτελείται το App.OnError, το σφάλμα έχει ήδη συμβεί και το αποτέλεσμα έχει αναπαραχθεί μέσω άλλων τύπων. Το App.OnError ελέγχει μόνο τον τρόπο αναφοράς του σφάλματος στον τελικό χρήστη και παρέχει ένα άγκιστρο στον κατασκευαστή για να καταγράψει το σφάλμα, εάν το επιθυμεί.
Οι μεταβλητές πεδίου FirstError και AllErrors παρέχουν πληροφορίες περιβάλλοντος σχετικά με το σφάλμα ή τα σφάλματα. Αυτό παρέχει πληροφορίες σχετικά με το είδος του σφάλματος και το σημείο προέλευσης του σφάλματος καθώς και το σημείο όπου παρατηρήθηκε.
Διακοπή μετά από ένα σφάλμα
Οι τύποι συμπεριφοράς υποστηρίζουν την ανάληψη ενεργειών, την τροποποίηση βάσεων δεδομένων και την αλλαγή κατάστασης. Αυτοί οι τύποι επιτρέπουν την εκτέλεση περισσότερων από μία ενεργειών σε μια ακολουθία με τη χρήση του ;
τελεστή σύνδεσης σε αλυσίδα (ή ;;
ανάλογα με τις τοπικές ρυθμίσεις).
Σε αυτήν την περίπτωση, για παράδειγμα, το στοιχείο ελέγχου πλέγματος δείχνει τι βρίσκεται στον πίνακα T
. Κάθε κουμπί που επιλέγετε αλλάζει την κατάσταση σε αυτόν τον πίνακα με δύο κλήσεις Patch:
Σε έναν τύπο αλυσιδωτής συμπεριφοράς, οι ενέργειες δεν σταματούν μετά το πρώτο σφάλμα. Ας τροποποιήσουμε το δικό μας παράδειγμα για να μεταβιβάσουμε έναν μη έγκυρο αριθμό ευρετηρίου στην πρώτη κλήση Patch. Το δεύτερο Patch συνεχίζεται παρά το προηγούμενο σφάλμα. Το πρώτο σφάλμα αναφέρεται στον τελικό χρήστη και εμφανίζεται ως σφάλμα στο Studio στο στοιχείο ελέγχου:
Το IfError μπορεί να χρησιμοποιηθεί για να σταματήσει η εκτέλεση μετά από ένα σφάλμα. Όπως και με τη συνάρτηση If , το τρίτο όρισμα σε αυτήν τη συνάρτηση παρέχει ένα σημείο για την τοποθέτηση ενεργειών οι οποίες θα πρέπει να εκτελεστούν μόνο εάν δεν υπάρχει σφάλμα:
Εάν παρουσιαστεί σφάλμα κατά τη διάρκεια μίας από τις επαναλήψεις του ForAll, οι υπόλοιπες επαναλήψεις δεν θα σταματήσουν. Το ForAll έχει σχεδιαστεί για να εκτελεί κάθε επανάληψη ανεξάρτητα, επιτρέποντας την παράλληλη εκτέλεση. Όταν ολοκληρωθεί το ForAll , θα επιστραφεί ένα σφάλμα, το οποίο περιέχει όλα τα σφάλματα που παρουσιάστηκαν (εξετάζοντας το AllErrors στο IfError ή App.OnError).
Για παράδειγμα, ο παρακάτω τύπος θα έχει ως αποτέλεσμα το ForAll να επιστρέφει δύο σφάλματα (για τη διαίρεση με μηδέν για την Value
του 0, δύο φορές) και το Collection
θα έχει τρεις καρτέλες (για όταν το Value
δεν είναι 0): [1, 2, 3]
.
Clear( Collection );
ForAll( [1,0,2,0,3], If( 1/Value > 0, Collect( Collection, Value ) ) );
Εργασία με πολλά σφάλματα
Καθώς ένας τύπος συμπεριφοράς μπορεί να εκτελέσει περισσότερες από μία ενέργειες, μπορεί επίσης να αντιμετωπίσει περισσότερα από ένα σφάλματα.
Από προεπιλογή, το πρώτο σφάλμα αναφέρεται στον τελικό χρήστη. Σε αυτό το παράδειγμα, και οι δύο κλήσεις Patch θα αποτύχουν, η δεύτερη με σφάλμα διαίρεσης με το μηδέν. Μόνο το πρώτο σφάλμα (σχετικά με το ευρετήριο) εμφανίζεται στο χρήστη:
Οι συναρτήσεις IfError και App.OnError μπορούν να έχουν πρόσβαση σε όλα τα σφάλματα που παρουσιάστηκαν με τη μεταβλητή πεδίου AllErrors. Σε αυτή την περίπτωση, μπορούμε να το ορίσουμε σε μια καθολική μεταβλητή και να δούμε και τα δύο σφάλματα που παρουσιάστηκαν. Εμφανίζονται στον πίνακα με την ίδια σειρά με την οποία απαντούν:
Είναι επίσης δυνατό να επιστραφούν πολλαπλά σφάλματα σε τύπους μη συμπεριφοράς. Για παράδειγμα, η χρήση της συνάρτησης Patchμε μια δέσμη καρτελών για ενημέρωση μπορεί να επιστρέψει πολλά σφάλματα, ένα για κάθε καρτέλα που αποτυγχάνει.
Σφάλματα σε πίνακες
Όπως είχαμε δει προηγουμένως, τα σφάλματα είναι δυνατό να αποθηκευτούν σε μεταβλητές. Είναι δυνατό επίσης να συμπεριληφθούν σφάλματα σε δομές δεδομένων, όπως πίνακες. Αυτό είναι σημαντικό, ώστε ένα σφάλμα σε οποιαδήποτε καρτέλα να μην μπορεί να ακυρώσει ολόκληρο τον πίνακα.
Για παράδειγμα, εξετάστε αυτό το στοιχείο ελέγχου πίνακα δεδομένων στο Power Apps:
Ο υπολογισμός στο AddColumns έχει συναντήσει σφάλμα διαίρεσης με το μηδέν για μία από τις τιμές. Για αυτήν την καρτέλα, η στήλη Reciprocal έχει μια τιμή σφάλματος (διαίρεση με το μηδέν), αλλά οι άλλες καρτέλες δεν έχουν και είναι μια χαρά. IsError( Index( output, 2 ) )
Επιστρέφει false και IsError( Index( output, 2 ).Value )
επιστρέφει true.
Εάν παρουσιαστεί σφάλμα κατά το φιλτράρισμα ενός πίνακα, ολόκληρη η καρτέλα είναι ένα σφάλμα, αλλά εξακολουθεί να επιστρέφεται στο αποτέλεσμα, ώστε ο τελικός χρήστης να γνωρίζει ότι υπήρχε κάτι εκεί και ότι υπάρχει κάποιο πρόβλημα.
Δείτε αυτό το παράδειγμα. Εδώ, ο αρχικός πίνακας δεν έχει σφάλματα, αλλά η ενέργεια του φιλτραρίσματος δημιουργεί σφάλμα όταν το Value ισούται με 0:
Οι τιμές -5 και -3 φιλτράρονται σωστά. Οι τιμές 0 οδηγούν σε σφάλμα στην επεξεργασία του φίλτρου και έτσι δεν είναι σαφές εάν η καρτέλα πρέπει να συμπεριληφθεί ή όχι στο αποτέλεσμα. Για να μεγιστοποιηθεί η διαφάνεια για τους τελικούς χρήστες και να βοηθηθούν οι δημιουργοί στον εντοπισμό σφαλμάτων, συμπεριλαμβάνουμε μια καρτέλα σφάλματος στη θέση του αρχικού. Σε αυτήν την περίπτωση, το IsError( Index( output, 2 ) )
επιστρέφει true.
Σφάλματα προέλευσης δεδομένων
Οι συναρτήσεις που τροποποιούν δεδομένα σε προελεύσεις δεδομένων, όπως Patch, Collect, Remove, RemoveIf, Update, UpdateIf, και SubmitForm αναφέρουν σφάλματα με δύο τρόπους:
- Καθεμία από αυτές τις συναρτήσεις θα επιστρέψει μια τιμή σφάλματος ως αποτέλεσμα της λειτουργίας. Τα σφάλματα μπορούν να ανιχνευθούν με το IsError και να αντικατασταθούν ή να ματαιωθούν με το IfError και το App.OnError ως συνήθως.
- Μετά τη λειτουργία, η συνάρτηση Errors θα επιστρέψει επίσης τα σφάλματα για προηγούμενες λειτουργίες. Αυτό μπορεί να είναι χρήσιμο για την εμφάνιση του μηνύματος σφάλματος σε μια οθόνη φόρμας χωρίς να χρειάζεται να καταγράψετε το σφάλμα σε μια μεταβλητή κατάστασης.
Για παράδειγμα, αυτός ο τύπος θα ελέγξει για ένα σφάλμα στο Collect και θα εμφανίσει ένα προσαρμοσμένο μήνυμα σφάλματος:
IfError( Collect( Names, { Name: "duplicate" } ),
Notify( $"OOPS: { FirstError.Message }", NotificationType.Warning ) )
Η συνάρτηση Errors επιστρέφει επίσης πληροφορίες σχετικά με σφάλματα του παρελθόντος κατά τις πράξεις χρόνου εκτέλεσης. Μπορεί να είναι χρήσιμο για την εμφάνιση ενός σφάλματος σε μια οθόνη φόρμας χωρίς να χρειάζεται να καταγράψετε το σφάλμα σε μια μεταβλητή κατάστασης.
Αλλαγή σφαλμάτων
Ορισμένες φορές ορισμένα πιθανά σφάλματα είναι αναμενόμενα και μπορείτε να τα αγνοήσετε με ασφάλεια. Εντός του IfError και του App.OnError, εάν εντοπιστεί κάποιο σφάλμα το οποίο θα πρέπει να διαβιβασθεί στο επόμενο υψηλότερο πρόγραμμα χειρισμού, μπορεί να αλλαχθεί με Error( AllErrors )
.
Δημιουργία των δικών σας σφαλμάτων
Επίσης, μπορείτε να δημιουργήσετε τα δικά σας σφάλματα με τη συνάρτηση Error.
Εάν δημιουργείτε τα δικά σας σφάλματα, συνιστάται να χρησιμοποιήσετε τιμές πάνω από το 1000 για να αποφύγετε πιθανές διενέξεις με μελλοντικές τιμές σφαλμάτων συστήματος.
Τιμές απαρίθμησης ErrorKind
Απαρίθμηση ErrorKind | Τιμή | Description |
---|---|---|
Ανάλυσης | 18 | Σφάλμα συστήματος. Παρουσιάστηκε πρόβλημα με την ανάλυση προγράμματος μεταγλώττισης. |
BadLanguageCode | 14 | Χρησιμοποιήθηκε μη έγκυρος ή μη αναγνωρισμένος κωδικός γλώσσας. |
BadRegex | 15 | Μη έγκυρη κανονική παράσταση. Ελέγξτε τη σύνταξη που χρησιμοποιείται με τις συναρτήσεις IsMatch, Match ή MatchAll. |
Διένεξη | 6 | Η καρτέλα που ενημερώνεται έχει ήδη αλλάξει στην προέλευση και η διένεξη πρέπει να επιλυθεί. Μια συνήθης λύση είναι η αποθήκευση τυχόν τοπικών αλλαγών, η ανανέωση της καρτέλας και η εκ νέου εφαρμογή των αλλαγών. |
Περιορισμός που έχει παραβιαστεί | 8 | Η καρτέλα δεν περνάει από έλεγχο περιορισμού στο διακομιστή. |
Δημιουργία δυνατότητας | 3 | Ο χρήστης δεν έχει δικαίωμα να δημιουργεί καρτέλες για την προέλευση δεδομένων. Για παράδειγμα, η συνάρτηση Collect καλείται. |
DeletePermissions | 5 | Ο χρήστης δεν έχει δικαίωμα να διαγράφει καρτέλες για την προέλευση δεδομένων. Για παράδειγμα, η συνάρτηση Remove καλείται. |
Div0 | 13 | Διαίρεση με το μηδέν. |
EditPermissions | 4 | Ο χρήστης δεν έχει δικαίωμα να δημιουργεί καρτέλες για την προέλευση δεδομένων. Για παράδειγμα, η συνάρτηση Patch καλείται. |
GeneratedValue | 9 | Μια τιμή διαβιβάσθηκε εσφαλμένα στο διακομιστή για ένα πεδίο που υπολογίζεται αυτόματα από το διακομιστή. |
InvalidCtionUsage | 16 | Μη έγκυρη χρήση μιας συνάρτησης. Συχνά ένα ή περισσότερα ορίσματα της συνάρτησης είναι εσφαλμένα ή χρησιμοποιούνται με μη έγκυρο τρόπο. |
FileNotFound | 17 | Ο χώρος αποθήκευσης SaveData δεν μπορούσε να βρεθεί. |
Μη επαρκής ποσότητα | 21 | Δεν υπάρχει αρκετή μνήμη ή χώρος αποθήκευσης στη συσκευή για την πράξη. |
Μη έγκυρο αναγνωριστικό | 25 | Ένα μη έγκυρο όρισμα μεταβιβάστηκε σε μια συνάρτηση. |
Εσωτερικός | 26 | Σφάλμα συστήματος. Παρουσιάστηκε εσωτερικό πρόβλημα με μία από τις συναρτήσεις. |
Λείπει το "Δεν υπάρχει" | 2 | Ένα απαιτούμενο πεδίο μιας καρτέλας λείπει. |
Δίκτυο | 23 | Υπήρχε κάποιο πρόβλημα με τις επικοινωνίες δικτύου. |
Κανένα | 0 | Σφάλμα συστήματος. Δεν υπάρχει σφάλμα. |
Δεν ισχύει | 27 | Δεν υπάρχει διαθέσιμη τιμή. Χρήσιμο για τη διαφοροποίηση μιας κενής τιμής που μπορεί να αντιμετωπιστεί ως μηδέν σε αριθμητικούς υπολογισμούς από κενές τιμές που θα πρέπει να επισημανθούν ως πιθανό πρόβλημα εάν η τιμή χρησιμοποιείται. |
Δεν είναιfound | 7 | Δεν ήταν δυνατή η εύρεση της καρτέλας. Για παράδειγμα, η καρτέλα που θα τροποποιηθεί στη συνάρτηση Patch. |
NotSupported | 20 | Η πράξη δεν υποστηρίζεται από αυτόν τον παίκτη ή τη συσκευή. |
Αριθμός | 24 | Μια αριθμητική συνάρτηση χρησιμοποιήθηκε με ακατάλληλο τρόπο. Για παράδειγμα, Sqrt με -1. |
QuoteExceeded | 22 | Υπέρβαση στόχων πωλήσεων χώρου αποθήκευσης. |
ReadOnlyValue | 10 | Η στήλη είναι μόνο για ανάγνωση και δεν είναι δυνατό να τροποποιηθεί. |
Δικαιώματα ανάγνωσης | 19 | Ο χρήστης δεν έχει δικαίωμα να διαβάζει καρτέλες για την προέλευση δεδομένων. |
Συγχρονισμός | 1 | Αναφέρθηκε ένα σφάλμα από την προέλευση δεδομένων. Ελέγξτε τη στήλη "Μήνυμα" για περισσότερες πληροφορίες. |
Άγνωστο | 12 | Υπήρξε ένα σφάλμα, αλλά ήταν αγνώστου είδους. |
Επικύρωση | 11 | Η καρτέλα δεν περνάει από έλεγχο επικύρωσης. |