Olá desenvolvedores, hoje iremos nos concentrar no debug de expressões. No tutorial anterior dedicamos um olhar mais atento sobre a depuração do código linha a linha. Para isso nos concentramos no uso da tecla de função F6, que cumpre o propósito de possibilitar que percorramos o código linha por linha.
Hoje, iremos nos debruçar sobre o debug de expressões, onde utilizaremos além da tecla F6 a combinação das teclas CTRL + SHIFT + I. Com elas poderemos inspecionar cada método, cada trecho de código, para identificar erros ou mesmo para saber o que dado método retorna.
DEBUGANDO NA PRÁTICA
Como sempre o primeiro passo é posicionar os breakpoints em partes “estratégicas” do nosso código, ou seja, neste caso nas expressões que carregam métodos que desejamos analisar.
Selecione o trecho do código “new Diretor(login, senha)” e utilize a combinação CTRL + SHIFT + I para exibir detalhes do construtor.
Dessa seleção será retornado o objeto. Agora aumentando o escopo da seleção, proceda da mesma forma para ver em detalhes o que retorna a expressão abaixo. Esteja atento a seleção dos parênteses, é importante selecionar a expressão por completo, caso contrário será exibido o erro “Syntax error, insert “)” to complete Expression”.
(new FuncaoAutenticacao(new Diretor(login, senha))
E da mesma forma você procederá abrangendo na seleção também o .autenticar(). Esta é uma forma de podermos ver não só o que o método está retornando, mas também, quando se trata de um objeto, observar do que aquele objeto é composto. Prossiga com o F6, inserido todos os dados quando solicitado.
Veja a linha de código na imagem abaixo. Queremos inspecioná-la, e como sabemos, fazemos isso selecionando o trecho que desejamos e utilizando a combinação de teclas CTRL + SHIFT + I.
Mas só o faremos depois que o debug passar por ela. Isto é, depois de ter adicionado a disciplina a lista de “Disciplinas”. Quando então selecionaremos o objeto “aluno1.
Este tipo de inspeção é de suma importância para a solução de problemas. Clicando sobre as setas (>), será possível expandir a informação exibindo ainda mais detalhes sobre o objeto. Ou ainda se os dados estão sendo recebidos de forma correta.
REMOVENDO UM ITEM
Como se dá o processamento quando desejamos remover alguma disciplina? O que será que acontece dentro do nosso código? Este é um tipo de curiosidade que você deve alimentar e que o debug pode ajudar a responder. É o momento em que você constrói o seu conhecimento, quando começa a entender o que acontece nos bastidores do seu código.
Vamos lá? Da linha de código da imagem abaixo selecione “aluno1.getDisciplinas()” e o inspecione.
Porém ao selecionar o objeto mais os métodos, como por exemplo, “aluno1.getDisciplinas().remove(Integer.valueOf(disciplinaRemover).intValue()”, será retornado o objeto removido.
Vamos entender o que acontece, quando o sistema nos pergunta se desejamos remover um objeto. Inicialmente apenas confirmaremos que sim e inspecionaremos o elemento. Veja na imagem que a disciplina inserida ainda está na memória do Java.
Prosseguindo com execução do sistema com a tecla F6, ela será removida da memória do Java. O trecho de código que permite tal análise é o “aluno1.getDisciplina()”.
EM POUCAS PALAVRAS
O foco do tutorial de hoje foi o debug de expressões a partir das quais podemos inspecionar os detalhes, vê-los sendo processados e identificar erros. E o interessante é que podemos fazê-lo sem entrar diretamente nos métodos com a tecla F5.
A depuração de expressões entendida separadamente, é um recurso poderoso e que você deverá aprender, dominar e utilizar. Este conhecimento o ajudará a ir ainda mais longe e com as próprias pernas.
Até mesmo no momento de pedir ajuda você verá que a depuração o ajudará, pois ela o permitirá ser ainda mais proativo. E tendo utilizado todos os recursos disponíveis, tenha certeza que os programadores experientes verão seu esforço com bons olhos.
Bom, eu fico por aqui. Mas antes quero indicar um vídeo que certamente o ajudará a desenvolver uma mentalidade de programador e assumir uma postura de uma pessoa de sucesso. nos vemos no próximo tutorial. Até lá.