Hvert fragment, du definerer, kræver en angivelse af type. Typen angiver, hvornår fragmentet vil blive udført i målmetoderne. En probe kan indeholde flere fragmenter, men kan ikke indeholde mere end ét fragment af en given type.
Fragmenttype | Metode eller kaldsted | Beskrivelse |
---|---|---|
entry | Metode | entry-fragmenter udføres ved metodeindgang. I forbindelse med de metoder, der er indsat i klassen af Probekit, bliver entry-fragmenter ikke udført. |
exit | Metode | exit-fragmenter udføres efter metodeafslutning, når metoden returnerer en undtagelse, eller når en returneret undtagelse sendes ud af metoden. I forbindelse med metoder, der er indsat i klassen af Probekit, bliver exit-fragmenter ikke udført. |
catch | Metode | catch-fragmenter udføres i starten af et catch-udtryk i metoden eller ved starten af et finally-udtryk, der udføres som resultat af en undtagelse. |
staticInitializer | Metode | staticInitializer-fragmenter udføres inde i klasseinitialiseringen for hver probet klasse. Hvis klassen ikke allerede har en statisk initialisering, vil der blive oprettet en. Der er flere oplysninger under Probefragmenttypen staticInitializer. |
executableUnit | Metode | executableUnit-fragmenter udføres før hver eksekvérbar enhed af kode i metoder, der overholder probens mål- og filterspecifikationer, og for hvilke der findes kildekode. Hvis metoden ikke indeholder kildelinjeoplysninger, ser den ud til at have én enkelt eksekvérbar enhed med nummeret nul. Der er flere oplysninger under Probefragmenttypen executableUnit. |
beforeCall | Kaldsted | beforeCall-fragmenter udføres i den kaldende metode, umiddelbart før målmetoden kaldes. Ikke gyldig i forbindelse med metodeprober. |
afterCall | Kaldsted | afterCall-fragmenter udføres i den kaldende metode, umiddelbart efter at målmetoden afsluttes. Det kan enten være en normal exit, eller hvis målmetoden returnerer en undtagelse. Ikke gyldig i forbindelse med metodeprober. |
En probe kan have flere fragmenter, der anvendes på samme placering i en metode: for eksempel et entry-fragment og den første executableUnit-placering. Et andet eksempel er et catch-fragment og den tilknyttede executableUnit-placering, fordi catch-udtryk til behandling af undtagelser altid repræsenterer starten af en ny eksekvérbar enhed. I disse tilfælde vil executableUnit-fragmentets kode udføres efter entry- eller catch-fragmentets kode. En af konsekvenserne af det er, at hvis der er entry-fragmenter tilstede, vil de altid blive udført før nogen andre slags fragmenter.
Du kan ikke blande metodefragmenter og kaldstedfragmenter i én enkelt probe, men du kan have metodeprober og kaldstedprober i samme Probekit-kildefil (probefil).
Hvis du vil angive en fragmenttype, skal du markere en Fragment-indgang i delvinduet med træstrukturen på siden Prober, og derefter vælge en type i listen Fragmenttype i redigeringsdelvinduet.