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ä.
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. |
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).
Voit määrittää fragmentin tyypin valitsemalla Luotaukset-sivun rakenneruudussa Fragmentti-merkinnän ja valitsemalla valitsemalla fragmentin tyypin muokkausruudun fragmenttityyppiluettelosta.