Luotausfragmenttien tyypit

Kukin määritetty fragmentti edellyttää, että määrität tyypin. Tyyppi osoittaa, milloin fragmentti ajetaan kohdemetodeissa. Luotaus voi sisältää useita fragmentteja, mutta vain yhden fragmentin kutakin tyyppiä.

Seuraavassa taulukossa on lueteltu ja kuvattu fragmenttityypit ja ilmoitettu, voiko tyyppiä käyttää metodi- vai callsite-luotauksessa. (Tietoja metodiluotausten ja callsite-luotausten eroista on kohdassa Metodiluotaukset ja callsite-luotaukset.)
Fragmentin tyyppi Metodi- vai Callsite-luotaus Kuvaus
entry Metodi entry-fragmentit ajetaan metodin tulokohdassa. entry-fragmentteja ei ajeta metodeissa, jotka Probekit on lisännyt luokkaan.
exit Metodi exit-fragmentit toteutetaan menetelmän poistumakohdassa normaalin poistumisen yhteydessä tai kun menetelmä tuottaa poikkeuksen tai silloin, kun ilmennyt poikkeus vaikuttaa menetelmän ulkopuolella. exit-fragmentteja ei ajeta metodeissa, jotka Probekit on lisännyt luokkaan.
catch Metodi catch-fragmentit ajetaan metodin catch-lauseen alussa tai sellaisen finally-lauseen alussa, joka ajetaan poikkeuksen tuloksena.
staticInitializer Metodi staticInitializer-fragmentit toteutetaan jokaisen luodatun luokan alustustoiminnon yhteydessä. Jos luokalla ei vielä ole staattista alustustoimintoa, sille luodaan sellainen. Lisätietoja on kohdassa staticInitializer-luotausfragmenttityyppi.
executableUnit Metodi executableUnit-fragmentit toteutetaan ennen kutakin toteutettavaa koodin yksikköä metodeissa, jotka vastaavat luotauksen kohde- ja suodatusmäärityksiä ja joissa lähdekoodi on käytettävissä. Jos metodissa ei ole lähdekooditietoja, siinä näkyy yksi toteutettava yksikkö, jonka numero on nolla. Lisätietoja on kohdassa executableUnit-luotausfragmenttityyppi.
beforeCall Callsite beforeCall-fragmentit toteutetaan kutsuvassa metodissa juuri ennen kuin kohdemetodia kutsutaan. Ei kelpaa metodiluotauksissa.
afterCall Callsite afterCall-fragmentit toteutetaan kutsuvassa metodissa heti kohdemetodin poistumakohdan jälkeen: kyseessä voi olla tavallinen poistuma tai kohdemetodin aiheuttama poikkeus. Ei kelpaa metodiluotauksissa.
Huomautus:

Luotauksessa voi olla useita fragmentteja, jotka koskevat samaa sijaintia metodissa: esimerkiksi entry-fragmentti ja ensimmäinen executableUnit-sijainti. Toinen esimerkki on catch-fragmentti ja siihen liittyvä executableUnit-sijainti, koska poikkeusten käsittelyn catch-lauseet tarkoittavat aina uuden ajettavan yksikön alkua. Näissä tapauksissa executableUnit-fragmentin koodi ajetaan entry- tai catch-fragmentin koodin jälkeen. Seurauksena on muun muassa, että entry-fragmentit ajetaan aina ennen muita fragmentteja.

Metodifragmentteja ja callsite-fragmentteja ei voi käyttää samassa luotauksessa, mutta voit käyttää metodiluotauksia ja callsite-luotauksia samassa Probekit-lähdetiedostossa (probe-tiedosto).

Esimerkki:

Voit määrittää fragmentin tyypin valitsemalla Luotaukset-sivun rakenneruudussa Fragmentti-merkinnän ja valitsemalla valitsemalla fragmentin tyypin muokkausruudun fragmenttityyppiluettelosta.

Probekit-muokkausohjelmassa on korostettu fragmenttityypin valinta

Lisätietoja on saatavilla seuraavista luotausfragmenttityypeistä:
Aiheeseen liittyviä viitteitä
Probe fragment Java source code
Luotausfragmentin tietoalkiot