Skip to main content

Inspecionar objetos em pontos de verificação

Objetivos de aprendizagem

Após concluir esta unidade, você estará apto a:
  • Configurar pontos de verificação em seu código do Apex.
  • Analisar os objetos na memória usando o Checkpoint Inspector.
Nota

Nota

O desafio prático para esse emblema está traduzido para japonês, espanhol (América Latina) e português (Brasil). Para definir o idioma do seu Trailhead Playground, siga essas instruções. A tradução pode estar desatualizada. Se você não conseguir passar no desafio usando as instruções traduzidas, defina o idioma para inglês e a localidade para Estados Unidos. Em seguida, tente novamente.

Consulte o emblema Trailhead no seu idioma para saber mais sobre como aproveitar a experiência de Trailhead em outros idiomas.

Configurar pontos de verificação em seu código do Apex

O momento em que o alto-falante de sua nave espacial começa a anunciar erros no sistema, você precisa ir diretamente aos registros para descobrir o que aconteceu e onde.

Da mesma forma, quando seu código do Apex está causando erros, tem problemas de desempenho ou não está produzindo os resultados desejados, seu primeiro passo é identificar o problema usando seu registro de depuração. Combinar todo o registro, linha a linha, é uma tarefa entediante. É aqui que os pontos de verificação vêm a calhar! Os pontos de verificação lhe mostram instantâneos do que está acontecendo em seu código do Apex em pontos específicos durante a execução.

Você pode configurar até cinco pontos de verificação em seu código do Apex. Os pontos de verificação não estão disponíveis para marcação Visualforce.

Vamos configurar um ponto de verificação na classe EmailMissionSpecialist que criamos mais cedo.
  1. Selecione File (Arquivo) | Open (Abrir) e abra a classe EmailMissionSpecialist.
  2. Selecione Debug (Depurar) | Change Log Levels (Alterar níveis de registro).
  3. Na seção General Trace Settings for You (Configurações gerais de rastreamento para você), clique em Add/Change (Adicionar/Alterar).
  4. Configure o nível de registro ApexCode para FINEST.
    Observação: Para definir pontos de verificação, você precisa da permissão de usuário Exibir todos os dados. Para gerar resultados usando pontos de verificação, execute o código usando o recurso de executar no modo anônimo ou defina você mesmo um sinalizador de rastreio DEVELOPER_LOG. O sinalizador de rastreio deve ter um nível de registro para o Apex of INFO ou superior.
  5. Para salvar suas alterações, clique em Done (Concluído).
  6. Para sair da caixa de diálogo Change Log Levels (Alterar níveis de registro), clique em Done (Concluído).

Quando seu código é exibido no editor de código-fonte, você pode ver os números das linhas no lado esquerdo. Clique no número da linha para inspectResults(results);. Um ponto vermelho (1) aparece, indicando que um ponto de verificação foi criado.

Configurar um ponto de verificação

Agora você pode executar seu código e analisá-lo usando a guia Checkpoints (Pontos de verificação).

Guia Pontos de verificação

Usando a guia Checkpoints (Pontos de verificação), você pode visualizar exatamente onde a execução de seu código está falhando e quais os valores dos objetos que se encontram naquele ponto. Vamos executar esse código para ver o ponto de verificação em ação.

Selecione Debug (Depurar) | Open Execute Anonymous Window (Abrir janela Executar no modo anônimo). Insira o seguinte código e execute-o. Substitua Enter your email address (Insira seu endereço de email) pelo seu endereço de email.

EmailMissionSpecialist em = new EmailMissionSpecialist();
em.sendMail('Enter your email address', 'Flight Path Change', 
   'Mission Control 123: Your flight path has been changed to avoid collision '
   + 'with asteroid 2014 QO441.');

Depois que você executar o código do Apex com sucesso, abra seu registro de depuração e clique na guia Checkpoints (Pontos de verificação) para ver os resultados.

Guia Checkpoints (Pontos de verificação)
  • A tabela Checkpoints (Pontos de verificação) exibe o namespace, a classe e o número da linha de cada ponto de verificação. Ela também mostra a data e hora em que cada ponto de verificação foi criado.
  • A tabela Checkpoint Locations (Locais do ponto de verificação) exibe o nome do arquivo, o número da linha e as iterações capturadas pelo ponto de verificação selecionado.

Clique duas vezes em um ponto de verificação na tabela Checkpoints (Pontos de verificação) para ver os resultados capturados no Checkpoint Inspector. Agora a diversão vai começar!

Checkpoint Inspector

O Checkpoint Inspector tem duas guias: Heap e Symbols (Símbolos).
  • Heap – Exibe todos os objetos presentes na memória, na linha de código onde seu ponto de verificação foi executado.
  • Symbols (Símbolos) – Exibe todos os símbolos na memória, em modo de exibição em árvore.

Guia Heap

A guia Heap inclui excelentes painéis para depuração, como o painel Types (Tipos). Esse painel mostra quantos objetos foram instanciados e a memória que consumiram em bytes. Vamos dar uma olhada nos detalhes capturados pelo ponto de verificação que você definiu.
  1. Em Types (Tipos), clique em Messaging.SingleEmailMessage.
  2. Em Instances (Instâncias), clique em qualquer instância desse tipo de objeto.
  3. Em State (Estado), visualize os campos do objeto e seus valores.
A guia Heap no Checkpoint Inspector

Guia Symbols (Símbolos)

A guia Symbols (Símbolos) é uma maneira rápida e simples de revisar os estados de vários objetos em qualquer ponto de verificação. Símbolos são nomes exclusivos que fazem referência a objetos específicos. A guia exibe todos os símbolos na memória usando um modo de exibição em árvore.

A guia Symbols (Símbolos) no Checkpoint Inspector
Enquanto comandante, você não precisa apenas verificar se os sistemas estão funcionando sem problemas – precisa também rastrear erros. Vamos ver como o Checkpoint Inspector pode ajudar você a entender melhor seu código.
  1. Para limpar os resultados do ponto de verificação da guia, selecione Debug (Depurar) | Clear (Limpar) | Checkpoint Results Panel (Painel de resultados do ponto de verificação).
  2. Selecione Debug (Depurar) | Open Execute Anonymous Window (Abrir janela Executar no modo anônimo).
  3. Execute a classe EmailMissionSpecialist novamente, desta vez com um endereço de email inválido, como testingemail.
    EmailMissionSpecialist em = new EmailMissionSpecialist();
    em.sendMail('testingemail', 'Flight Path Change', 
       'Mission Control 123: Your flight path has been changed to avoid collision '
       + 'with asteroid 2014 QO441.');
  4. Depois de executar o código, clique na guia Checkpoints (Pontos de verificação).

A guia Checkpoints (Pontos de verificação) não mostra nenhum resultado, pois a execução de seu código não chegou ao número da linha onde seu ponto de verificação foi definido.

Resultados da guia Checkpoints (Pontos de verificação)
Vamos adicionar um ponto de verificação mais cedo no código, para podermos capturar informações no novo ponto de verificação antes que o código chegue ao testingemailerror.
  1. Selecione File (Arquivo) | Open (Abrir) e abra a classe EmailMissionSpecialist.
  2. Clique no número da linha à esquerda para String[] toAddresses = new String[] {address}.
  3. Selecione Debug (Depurar) | Clear (Limpar) | Checkpoint Results Panel (Painel de resultados do ponto de verificação).
  4. Selecione Debug (Depurar) | Open Execute Anonymous Window (Abrir janela Executar no modo anônimo).
  5. Execute a classe EmailMissionSpecialist novamente com um endereço de email inválido, como testingemail.
    EmailMissionSpecialist em = new EmailMissionSpecialist();
    em.sendMail('testingemail', 'Flight Path Change', 
       'Mission Control 123: Your flight path has been changed to avoid collision '
       + 'with asteroid 2014 QO441.');
  6. Clique na guia Checkpoints (Pontos de verificação).

Você vê uma nova entrada na guia Checkpoints (Pontos de verificação). Agora você pode analisar os objetos na memória usando o Checkpoint Inspector.

Resultados da guia Checkpoints (Pontos de verificação)
Continue a aprender de graça!
Inscreva-se em uma conta para continuar.
O que você ganha com isso?
  • Receba recomendações personalizadas para suas metas de carreira
  • Pratique suas habilidades com desafios práticos e testes
  • Monitore e compartilhe seu progresso com os empregadores
  • Conecte-se a orientação e oportunidades de carreira