Κάθε τμήμα κώδικα που ορίζετε απαιτεί μια προδιαγραφή είδους. Το είδος δηλώνει το χρόνο εκτέλεσης του τμήματος κώδικα στις μεθόδους στόχους. Ένας διερευνητής μπορεί να περιέχει περισσότερα του ενός τμήματα κώδικα, αλλά δεν μπορεί να περιέχει περισσότερα του ενός είδη τμημάτων κώδικα.
Είδος τμήματος κώδικα | Μέθοδος ή Σημείο κλήσης | Περιγραφή |
---|---|---|
entry | Μέθοδος | Τα τμήματα κώδικα entry εκτελούνται κατά την είσοδο στη μέθοδο. Τα τμήματα entry δεν εκτελούνται για μεθόδους οι οποίες έχουν εισαχθεί στην κλάση από το Probekit. |
exit | Μέθοδος | Τα τμήματα κώδικα exit εκτελούνται κατά την έξοδο από τη μέθοδο: μια κανονική έξοδο, όταν η μέθοδος παρουσιάζει εξαίρεση ή όταν η εξαίρεση που προκύπτει μεταδίδεται σε άλλες μεθόδους. Τα τμήματα exit δεν εκτελούνται για μεθόδους οι οποίες έχουν εισαχθεί στην κλάση από το Probekit. |
catch | Μέθοδος | Τα τμήματα κώδικα catch εκτελούνται στην αρχή μιας συνθήκης catch της μεθόδου ή στην αρχή μιας συνθήκης finally η οποία εκτελείται ως αποτέλεσμα μιας εξαίρεσης. |
staticInitializer | Μέθοδος | Τα τμήματα κώδικα staticInitializer εκτελούνται εκτός της λειτουργίας απόδοσης αρχικών τιμών στην κλάση για κάθε ελεγχόμενη κλάση. Εάν η κλάση δεν διαθέτει ήδη στατική λειτουργία απόδοσης αρχικών τιμών, τότε θα δημιουργηθεί μία τέτοια λειτουργία. Για περισσότερες λεπτομέρειες, ανατρέξτε στην ενότητα Το είδος τμήματος κώδικα διερευνητή staticInitializer. |
executableUnit | Μέθοδος | Τα τμήματα κώδικα executableUnit εκτελούνται πριν από κάθε εκτελέσιμη μονάδα του κώδικα σε μεθόδους οι οποίες συμφωνούν με τα κριτήρια της προδιαγραφής στόχευσης και φιλτραρίσματος του διερευνητή και για τις οποίες υπάρχει διαθέσιμος πρωτογενής κώδικας. Εάν η μέθοδος δεν διαθέτει πληροφορίες γραμμής πρωτογενούς κώδικα, θα φαίνεται ότι έχει μία εκτελέσιμη μονάδα, με τον αριθμό μηδέν. Για περισσότερες λεπτομέρειες, ανατρέξτε στην ενότητα Το είδος τμήματος κώδικα διερευνητή executableUnit. |
beforeCall | Σημείο κλήσης | Τα τμήματα κώδικα beforeCall εκτελούνται στη μέθοδο κλήσης ακριβώς πριν την κλήση της μεθόδου στόχου. Δεν είναι έγκυρο για διερευνητές μεθόδων. |
afterCall | Σημείο κλήσης | Τα τμήματα κώδικα afterCall εκτελούνται στη μέθοδο κλήσης αμέσως μετά την έξοδο από τη μέθοδο στόχο: είτε πρόκειται για κανονική έξοδο είτε όταν προκύπτει εξαίρεση στη μέθοδο στόχο. Δεν είναι έγκυρο για διερευνητές μεθόδων. |
Ένας διερευνητής μπορεί να έχει πολλαπλά τμήματα κώδικα που εφαρμόζονται στην ίδια θέση μιας μεθόδου: για παράδειγμα, ένα τμήμα κώδικα entry και η πρώτη θέση executableUnit. Ένα άλλο παράδειγμα είναι ένα τμήμα κώδικα catch και η συσχετισμένη με αυτό θέση executableUnit, διότι οι συνθήκες catch για το χειρισμό των εξαιρέσεων εκφράζουν πάντα την αρχή μιας νέας εκτελέσιμης μονάδας. Στις περιπτώσεις αυτές, το τμήμα κώδικα executableUnit θα εκτελείται μετά από το τμήμα κώδικα entry ή catch. Μια συνέπεια είναι ότι τα τμήματα κώδικα entry, εάν υπάρχουν, θα εκτελούνται πάντα πριν από άλλα είδη τμημάτων κώδικα.
Δεν μπορείτε να έχετε τμήματα κώδικα μεθόδου και τμήματα κώδικα σημείου κλήσης μαζί σε έναν διερευνητή. Μπορείτε όμως να έχετε διερευνητές μεθόδων και διερευνητές σημείων κλήσης στο ίδιο αρχείο πρωτογενούς κώδικα Probekit (αρχείο probe).
Για να προσδιορίσετε ένα είδος τμήματος κώδικα, επιλέξτε μια καταχώρηση Τμήμα κώδικα στο τμήμα παραθύρου διακλάδωσης της σελίδας "Διερευνητές" και επιλέξτε από τη λίστα ειδών τμημάτων κώδικα που εμφανίζεται στο τμήμα παραθύρου τροποποίησης.