O Objeto de Sondagem Fragment

O objeto de sondagem Fragment é uma especificação de uma lógica de sondagem. Ele contém código fonte Java que será executado.

Pelo menos um objeto Fragment é necessário. Ele contém o objeto Code e todos os itens de dados que são referidos pelo código fonte no objeto Code. Uma sondagem pode conter mais de um objeto Fragment, mas dois objetos Fragment não podem ter o mesmo tipo.

O objeto Fragment inclui a seguinte propriedade:
Propriedade Descrição
type Requerida. Para sondagens de método, ela deve ser entry, exit, catch, staticInitializer ou executableUnit. Para sondagens callsite, ela deve ser beforeCall ou afterCall. Você não pode misturar fragmentos de método e fragmentos callsite em uma única sondagem.
A seguinte tabela lista e descreve os tipos de fragmento e indica o tipo de sondagem em que cada um pode ser utilizado:
Tipo de fragmento Tipo de sondagem Descrição
entry Método Fragmentos entry são executados no método de entrada. Fragmentos entry não executarão para métodos que foram inseridos na classe pelo Kit de Sondagem.
exit Método Fragmentos exit são executados no método de saída; uma saída normal, quando o método lança uma exceção ou quando uma exceção lançada é propagada para fora do método. Fragmentos exit não serão executados para métodos que foram inseridos na classe pelo Kit de Sondagem.
catch Método Fragmentos catch são executados no início de uma cláusula catch no método ou no início de uma cláusula finally que é executada como resultado de uma exceção.
staticInitializer Método Fragmentos staticInitializer são executados dentro do inicializador de classe de cada classe sondada. Se a classe ainda não tiver um inicializador estático, será criado um. Para obter informações adicionais, consulte O Fragmento de Sondagem staticInitializer.
executableUnit Método Fragmentos executableUnit são executados antes de cada unidade de código executável que corresponde à especificação de destino e filtro da sondagem e para a qual o código fonte está disponível. Se o método não tiver informações sobre a linha de origem, ele parecerá ter uma única unidade executável, numerada com zero. Para obter informações adicionais, consulte O Fragmento de Sondagem executableUnit.
beforeCall callsite Fragmentos beforeCall são executados no método de chamada imediatamente antes do método de destino ser chamado. Não válido para sondagens de método.
afterCall callsite Fragmentos afterCall são executados no método de chamada imediatamente após o método de destino ser gerado; uma saída normal ou quando o método de destino lança uma exceção. Não válido para sondagens de método.
Notas:
  • Quando as sondagens são aplicadas em métodos que são declarados sincronizados, o código nos fragmentos entry, exit e executableUnit não têm garantia de estarem protegidos da execução simultânea em vários encadeamentos. Por exemplo, um fragmento entry e os primeiros fragmentos executableUnit poderão ser executados antes da lógica de sincronização do método obter uma trava e um fragmento exit poderá ser executado depois da trava ser liberada.
  • Uma sondagem pode ter vários fragmentos que se aplicam ao mesmo local em um método; por exemplo, um fragmento entry e o primeiro local executableUnit. Outro exemplo é um fragmento catch e seu local executableUnit associado, porque cláusulas catch de manipulação de exceção sempre representam o início de uma nova unidade executável. Nesses casos, o código do fragmento executableUnit será executado após o código do fragmento entry ou catch. Uma conseqüência é que os fragmentos entry, se presentes, sempre serão executados antes de outros tipos de fragmentos.
Exemplo
<fragment type="entry"> 
   <data . . . />
   <code>
      . . . 
   </code>
</fragment>

Contido por
O Objeto Probe

Tópico-pai: Referência do Kit de Sondagem

Conceitos Relacionados
Sondagens de Método Versus Sondagens Callsite

Copyright IBM Corporation e outros 2000, 2004.