Typy fragmentów sond

Każdy definiowany fragment wymaga specyfikacji typu. Typ wskazuje, kiedy fragment będzie uruchamiany w docelowych metodach. Sonda może zawierać więcej niż jeden fragment, ale nie może zawierać więcej niż jednego fragmentu danego typu.

W poniższej tabeli wymieniono i opisano typy fragmentów oraz określono, czy dany typ może być używany w sondzie metody lub w sondzie miejsca wywołania. Rozróżnienie między sondami metod a sondami miejsca wywołania przedstawiono w sekcji Sondy metod a sondy miejsca wywołania.
Typ fragmentu Metody lub miejsca wywołania Opis
entry Metoda Fragmenty typu entry uruchamiane po wejściu do metody. Fragmenty typu entry nie będą uruchamiane w przypadku metod wstawionych do klasy przez pakiet Probekit.
exit Metoda Fragmenty typu exit są wykonywane przy wyjściu z metody (w przypadku wyjścia normalnego, gdy metoda zgłasza wyjątek lub gdy zgłoszony wyjątek jest propagowany poza metodę). Fragmenty exit nie są wykonywane w przypadku metod wstawionych do klasy przez pakiet Probekit.
catch Metoda Fragmenty typu catch są wykonywane na początku klauzuli catch w metodzie lub na początku klauzuli finally wykonywanej w wyniku wystąpienia wyjątku.
staticInitializer Metoda Fragmenty typu staticInitializer są wykonywane w inicjatorze każdej sondowanej klasy. Jeśli klasa nie ma jeszcze inicjatora static, zostanie on utworzony. Więcej informacji można znaleźć w sekcji Fragment sondy typu staticInitializer.
executableUnit Metoda Fragmenty typu executableUnit są wykonywane przed każdą jednostką wykonywalną kodu w metodach, które odpowiadają specyfikacji dotyczącej miejsca docelowego i filtru sondy oraz w przypadku których dostępny jest kod źródłowy. Jeśli metoda nie zawiera informacji o wierszu kodu źródłowego, będzie istniała tylko jedna jednostka wykonywalna (o numerze zero). Więcej informacji można znaleźć w sekcji Fragment sondy typu executableUnit.
beforeCall Miejsce wywołania Fragmenty typu beforeCall są wykonywane w metodzie wywołującej bezpośrednio przed wywołaniem metody docelowej. Nie dotyczy sond metody.
afterCall Miejsce wywołania Fragmenty typu afterCall są wykonywane w metodzie wywołującej bezpośrednio po wyjściu z metody docelowej (w przypadku wyjścia normalnego oraz w przypadku zgłoszenia wyjątku przez metodę docelową). Nie dotyczy sond metody.
Uwaga:

Sonda może zawierać wiele fragmentów dotyczących tego samego miejsca w metodzie (np. fragment entry i pierwsze wystąpienie fragmentu executableUnit). Innym przykładem jest fragment catch i powiązane z nim wystąpienie fragmentu executableUnit, ponieważ klauzule catch obsługi wyjątków zawsze reprezentują początek nowej jednostki wykonywalnej. W takich przypadkach kod fragmentu executableUnit zostanie wykonany po kodzie fragmentu entry lub catch. Z tego powodu fragmenty entry (jeśli istnieją) zawsze będą wykonywane przed fragmentami innego rodzaju.

Jedna sonda nie może zawierać fragmentów dotyczących metody i fragmentów dotyczących miejsca wywołania, ale sondy metod i sondy miejsca wywołania mogą ze sobą sąsiadować w obrębie jednego pliku źródłowego pakietu Probekit (plik probe).

Przykład:

Aby określić typ fragmentu, należy wybrać pozycję Fragment w panelu drzewa na stronie Sondy i wybrać jedną z opcji na liście Typ fragmentu w panelu edycji.

Edytor pakietu Probekit z wyróżnionym typem fragmentu

Na temat niżej wymienionych typów fragmentów sond są dostępne dodatkowe informacje:
Informacje pokrewne
Źródłowy kod Java fragmentu sondy
Elementy danych fragmentów sond