Hvert fragment du definerer, krever en type-spesifikasjon. Typen viser når fragmentet skal kjøres i de aktuelle metodene. En probe kan inneholde flere fragmenter, men kan ikke inneholde mer enn ett fragment av hver type.
Fragmenttype | Metode eller kallsted | Beskrivelse |
---|---|---|
entry | Metode | entry-fragmenter kjøres ved metodeinngang. entry-fragmenter blir ikke kjørt for metoder som ble satt inn i klassen av Probekit. |
exit | Metode | exit-fragmenter kjøres ved avslutning av metoden: en normal avslutning, når metoden kaster et unntak, eller når et kastet unntak sprer seg fra metoden. exit-fragmenter blir ikke kjørt for metoder som ble satt inn i klassen av Probekit. |
catch | Metode | catch-fragmenter kjøres på begynnelsen av et catch-ledd i metoden, eller på begynnelsen av et finally-ledd som kjøres som et resultat av et unntak. |
staticInitializer | Metode | staticInitializer-fragmenter blir utført i klasseinitialisereren i hver probebehandlet klasse. Hvis klassen ikke allerede har en statisk initialiserer, blir det opprettet en. Du finner flere opplysninger i Probefragmenttypen staticInitializer. |
executableUnit | Metode | executableUnit-fragmenter kjøres før alle utførbare kodeenheter i metoder som samsvarer med probens mål- og filterspesifikasjoner, og som det er tilgjengelig kildekode for. Hvis metoden ikke har kildelinjeinformasjon, ser den ut til å ha en enkelt utførbar enhet, med nummeret null. Du finner flere opplysninger under executableUnit-probefragmenttypen. |
beforeCall | Kallsted | beforeCall-fragmenter kjøres i kallmetoden rett før målmetoden blir kalt. Ikke gyldig for metode-prober. |
afterCall | Kallsted | afterCall-fragmenter kjøres i kallmetoden umiddelbart etter at målmetoden finnes; enten ved en normal avslutning, eller når det oppstår et unntak i målmetoden. Ikke gyldig for metode-prober. |
En probe kan ha flere fragmenter som gjelder for samme plassering i en metode: for eksempel et entry-fragment og den første executableUnit-plasseringen. Et annet eksempel er et catch-fragment og den tilknyttede executableUnit-plasseringen, fordi catch-ledd for unntaksbehandling alltid representerer begynnelsen på en ny utførbar enhet. I slike tilfeller vil koden til executableUnit-fragmentet kjøres etter koden til entry- eller catch-fragmentet. Det betyr blant annet at eventuelle entry-fragmenter alltid blir kjørt før andre typer fragmenter.
Du kan ikke ha en blanding av metode- og kallstedfragmenter i en enkelt probe, men du kan ha metode-prober og kallsted-prober i samme Probekit-kildefil (probe-fil).
Hvis du skal oppgi en fragmenttype, velger du en Fragment-oppføring i treruten på siden Prober og velger noe fra listen Fragmenttype i redigeringsruten.