Code Monkey home page Code Monkey logo

debugging-java's Introduction

Debugging Java

Curso que apresenta conceitos introdutórios sobre como podemos trabalhar com debugging na linguagem Java. Curso este ministrado por mim em nome da DIGITAL INNOVATION ONE 🧡💛 e disponibilizado de forma gratuita para a comunidade dos desenvolvedores Java.

🛑 Pré-requistos

  • Java JDK 8 ou superior
  • IDE para desenvolvimento Java

📚 Ementa

  1. Visão Geral
  2. Pilha de Execução de um programa Java

Visão Geral

Erros de programação são denominados bugs e o processo de encontrar e corrigir bugs é chamado de depuração ou debugging.

De forma geral, a depuração é uma tarefa difícil e trabalhosa, e a dificuldade varia de acordo com o ambiente de desenvolvimento, o que inclui a linguagem de programação e as ferramentas disponíveis, como depuradores.

Existem duas grandes categorias que englobam a natureza do erro:

  • Erros de Sintaxe:

    É um erro nas regras estabelecidas da linguagem:
    1. Parênteses, chaves, colchetes que abrem mas não fecham.
    2. Duas instruções sem um ponto-e-vírgula entre elas;
    3. Uma palavra-chave sendo usada numa posição inesperada.
  • Erros de Semântica:

    É um erro na "lógica do código", em sua semântica, o código está sintaticamente correto, porém não faz o que se esperava dele.
    1. Tentar dividir um número por uma String ou por zero.
    2. Atribuir um valor incoerente a um tipo de dado.
    3. Tentar fechar um arquivo que não foi aberto.

Depuração/Debugging

Linguagens de alto nível tornam a depuração mais fácil, pois fornecem mais ferramentas para identificar erros, como o tratamento de exceções.

Os depuradores funcionam assumindo o controle do tempo de execução de um programa e permitindo que você o observe e controle. Para fazer isso, ele mostra a pilha do programa e permite que você a atravesse em qualquer direção. Quando você está em um depurador, obtém uma imagem mais completa de um quadro de pilha do que quando olha os rastreamentos de pilha em uma mensagem de log.

Pilha de Execução de um Programa Java/Stack Trace

Pilha de Execução:

Toda invocação de método é empilhada em uma estrutura de dados que isola a área de memória de cada um. Quando um método termina (retorna), ele volta para o método que o invocou.

Stack Trace:

É a matriz onde encontramos a pilha de excecução da exceção. Em outras palavras, podemos dizer que o rastreamento da pilha busca (rastreio) para a próxima linha onde a exceção pode surgir.

🔗 Links Úteis

🔎 Referências

✨ ️Redes Socias

YouTube ▪️ Instagram 1 ▪️ Instagram 2 ▪️ LinkedIn

🤝 Contribuindo

Este repositório foi criado para fins de estudo, então contribua com ele. Se te ajudei de alguma forma, ficarei feliz em saber. E caso você conheça alguém que se identidique com o conteúdo, não deixe de compatilhar.

Se possível:

⭐️ Star o projeto

🐛 Encontrar e relatar issues


Disponibilizado com ♥ por cami-la.

debugging-java's People

Contributors

cami-la avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

debugging-java's Issues

Dificuldade Java 17

Boa noite prof Camila, Mauro por aqui. Quero adiantar e agradecer pelo conteudo que está massa.
Eu fiz um Fork do seu exemplo para testar aplicar na minha IDE (Intelij) mas aparece erro pois foi criada no Java ver 17 e o meu é na versão 11.
Isso sempre ocorre nesse caso? Como eu posso resolver?
Gratidão total

Dúvida

Saudação professora Camila.
A minha dúvida é concernente ao comando ´´Thread.dumpStack´´. Gostaria de saber se este comando só se usa no último método da classe. E será que este mesmo comando serve para debagar? Porque depois utilizamos algumas ferramentas para debagar o nosso código...
Não percebi com clareza...

Obrigado!!

NoSuchElementException

Olá Camila, boa tarde! Estou no módulo Debugging Java, estava escrevendo um código como exercício e estou com esse erro que não consegui resolver.

Poderia me ajudar?

image

image

Problemas com IntelliJ

Oi Cami!!!

Tudo bem amore???

Estou no Bootcamp Dio QA GFT e estou com uma dúvida cruel😅

Estou nas aulas de Collection e Debuggin, nelas você utiliza o IntelliJ, mas tenho um problema com o IntelliJ, meu computador fica muito lento, eu posso utilizar o Vs code nessas aulas?

conceito %d

Oi Cami!

Gostaria de entender melhor o porquê na hora de mudar o conceito "Média da turma %d" você colocou o conceito "f", se o valor é um double, o correto não seria ou omitir o "d" ou deixá-lo lá? Fiquei com dúvida nessa questão de conceito. Não entendi muito bem 😢

Obrigada ♥

Intellij não aparece caracteres acentuados

Olá Camila, tudo bem?
Primeiramente agradeço por compartilhar seu conhecimento.
Também peço desculpas por incomodá-la...

Estou participando do Bootcamp Santander Code Girls e estou com uma dúvida, caso você possa me ajudar, agradeço muito!
Minha IDE Intellij não reconhece os caracteres acentuados e "ç". Já segui diversas dicas e alterei para UTF-8 nas configurações. Assim que eu mudo pra UTF-8 ele executa e aprece os acentos mas parece que logo em seguida "atualiza" (não sei bem o que acontece), e volta aparecer caracteres estranhos no lugar dos acentuados. Isso tudo sem mudar as configurações.
Criei um programa pra estudar e vou tentar te mostrar:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.