Oggetto probe Fragment

L'oggetto probe Fragment è una specifica della logica di un probe. Contiene il codice di origine Java che verrà eseguito.

È necessario almeno un oggetto Fragment. Questo oggetto contiene l'oggetto Code e tutti gli elementi di dati a cui fa riferimento il codice di origine nell'oggetto Code. Un probe può contenere più di un oggetto Fragment, ma di tipo diverso.

L'oggetto Fragment include le seguenti proprietà:
Proprietà Descrizione
type Obbligatoria. Per i probe method, deve essere entry, exit, catch, staticInitializer o executableUnit. Per i probe callsite, deve essere beforeCall o afterCall. Non è possibile combinare in un probe frammenti method e callsite.
La seguente tabella elenca e descrive i tipi di frammento e indica il tipo di probe in cui possono essere utilizzati:
Tipo di frammento Tipo di probe Descrizione
entry Metodo I frammenti entry vengono eseguiti all'inizio del metodo, ovvero al punto di ingresso del metodo. I frammenti entry non verranno eseguiti per i metodi che sono stati inseriti nella classe da Probekit.
exit Metodo I frammenti exit vengono eseguiti alla fine del metodo, ovvero al punto di uscita del metodo: sia nel caso di un'uscita regolare, ossia quando un metodo lancia un'eccezione, sia nel caso in cui un'eccezione lanciata si propaghi all'esterno del metodo. I frammenti exit non verranno eseguiti per i metodi che sono stati inseriti nella classe da Probekit.
catch Metodo I frammenti catch vengono eseguiti all'inizio di una proposizione catch nel metodo oppure all'inizio di una proposizione finally che viene eseguita come risultato di un'eccezione.
staticInitializer Metodo I frammenti staticInitializer vengono eseguiti all'interno dell'inizializzatore di classi di ciascuna classe con probe. Se la classe non dispone di un inizializzatore, ne viene creato uno. Per ulteriori informazioni, vedere Frammento probe staticInitializer.
executableUnit Metodo I frammenti executableUnit vengono eseguiti prima di ciascuna unità eseguibile di codice nei metodi che soddisfano le regole e i filtri specificati e per i quali è disponibile codice di origine. Se il metodo non dispone di informazioni sulle righe del codice di origine, sembrerà contenere una singola unità eseguibile, di numero zero. Per ulteriori informazioni, vedere Frammento probe executableUnit.
beforeCall callsite I frammenti beforeCall vengono eseguiti nel metodo che esegue la chiamata, immediatamente prima che il metodo di destinazione venga richiamato. Non è valido per i probe method.
afterCall callsite I frammenti afterCall vengono eseguiti nel metodo che esegue la chiamata, immediatamente dopo la fine del metodo di destinazione, sia nel caso di un'uscita regolare o nel caso in cui il metodo di destinazione lanci un'eccezione. Non è valido per i probe method.
Note:
  • quando si applicano i probe ai metodi dichiarati come synchronized, non vi è alcuna garanzia che il codice contenuto nei frammenti entry, exit ed executableUnit sia protetto contro esecuzioni simultanee su più thread. Ad esempio, è possibile che un frammento entry e i primi frammenti executableUnit vengano eseguiti prima che la logica di sincronizzazione del metodo venga bloccata e che un frammento exit venga eseguito subito dopo che il blocco venga rilasciato.
  • un probe può disporre di più frammenti che si applicano alla stessa posizione all'interno di un metodo; ad esempio, un frammento entry e la prima posizione di executableUnit. Un altro esempio è rappresentato da un frammento catch e della posizione di executableUnit associata, in quanto un'eccezione che gestisce le proposizioni catch rappresenta sempre l'inizio di una nuova unità eseguibile. In questi casi, il codice del frammento executableUnit verrà eseguito dopo il codice del frammento entry o catch. Di conseguenza, eventuali frammenti entry verranno sempre eseguiti prima di tutti gli altri tipi di frammenti.
Esempio
<fragment type="entry"> 
   <data . . . />
   <code>
      . . . 
   </code>
</fragment>

Contenuto in
Oggetto Probe

Argomento principale: Informazioni di riferimento su Probekit

Argomenti correlati
Probe method e probe callsite

Copyright IBM Corporation e altri 2000, 2004.