Curso que apresenta conceitos introdutórios sobre como podemos trabalhar com debugging na linguagem Java.

Overview

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.

Comments
  • NoSuchElementException

    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

    opened by SSanjos 3
  • Problemas com IntelliJ

    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?

    opened by JosianeCHSantos 2
  • Intellij não aparece caracteres acentuados

    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:

    opened by bruleonel 10
  • conceito %d

    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 ♥

    opened by cybergrazi 1
  • Dificuldade Java 17

    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

    opened by msgsouza-rj 3
  • Dúvida

    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!!

    opened by firminolussau 8
Clean-architecture-guide - Guia sobre Clean Architecture criado a partir dos meus estudos sobre o tema.

Clean Architecture Guide Arquitetura são as práticas e fundamentos de como organizamos um sistema. Tem relação e como os componentes estão relacionado

Jean Jacques Nascimento Barros 3 Apr 23, 2022
Crud sobre el mundo del cine, y listado de películas que un usuario puede tener en su casa.

FilmHome ?? ??️ Crud sobre el mundo del cine, y listado para gestionar las películas que un usuario puede tener como colección en su casa. ??️ VIDEO Y

Adrian Egea Hermoso 5 May 16, 2022
Repositório que também será utilizado como workspace no eclipse

entra21 Programação orientada a objetos Repositório com as práticas realizadas em aula Conteúdo prático realizado em sala durante o projeto Entra21 Em

Rubem Oliota 10 Jun 8, 2022
Curso Bootcamp GFT Start Woman Java (dizem que quem deixa estrelas nesse repositório, é pq é bonito! :)

☕ Curso: Bootcamp GFT Start Woman Java O Bootcamp GFT Start Woman Java é um programa gratuito direcionado para desenvolvedoras que estão começando a j

Sah 4 May 7, 2022
Projeto desenvolvido para explicar os conceitos de SOLID - Palestra TDC

SOLID Geek Projeto desenvolvido para explicar os conceitos do SOLID e Orientação a Objetos. Neste repositório temos uma aplicação desenvolvida utiliza

Jean Jacques Nascimento Barros 10 May 31, 2022
Jogo criado em java para disciplina de Linguagem de Programação III

Mr.Cat-JOGO Jogo criado em java para disciplina de Linguagem de Programação III O jogo é um cookie Clicker feito em Java para disciplina de Linguagem

Claudia 5 Dec 22, 2021
Repositório com conteúdo da disciplina Linguagem de Programação 2 de 2021.2 do IMD/UFRN

IMD0040 - LP2 Repositório contendo informações e arquivos da disciplina de Linguagem de Programação 2 (IMD0040) do IMD/UFRN ministrada pelo Prof. Gust

Gustavo Leitão 12 Dec 22, 2022
Repositorio de los microservicios desarrollados como parte del Proyecto Final de la academia de microservicios en IBM

Microservicio_ProyectoFinal_IBM Repositorio de los microservicios desarrollados como parte del Proyecto Final de la academia de microservicios en IBM

Cesar Martin 2 Oct 18, 2021
Projeto básico de como utilizar Spring Boot enviando email via GMail

Projeto de Envio de Email Projeto simples utilizando Spring Boot para enviar email utilizando contas do Gmail. Vídeo: https://youtu.be/so3nq5NapHA Pré

null 2 Sep 22, 2022
Um sistema de hospital feito em Spring Boot, contendo alguns CRUD's, e utilizando algumas famosas dependências, como o Hibernate. Vale destacar a interface inspirada no jogo Minecraft.

Introdução ✏ Esse projeto é uma atividade da disciplina de Design, Arquitetura e Construção de Software [DACS]. O objetivo do projeto é simular um sis

Ramon Victor Cardoso 12 Nov 6, 2022
MVP de Sistema de delivery de comida (como Uber eats ou Ifood)

Repositório para acompanhar a minha evolução no curso Especialista Spring REST da Algaworks ??️ Sobre o Projeto: MVP de Sistema de delivery de comida

Rayane Maciel 18 Dec 29, 2022
Aula da série Design Patterns 4Devs sobre os padrões singleton e monostate

DesignPatterns4Devs - Singleton & Monostate Nessa aula o intuíto é abordar um padrão bem polêmico na comunidade dev: Singleton. Apesar de ser um consi

Rocketseat Creators Program 3 Sep 23, 2022
Repositorios de materiales y proyectos usados como ejemplos en FP-NextGen para el módulo de Acceso a Datos en la Comunidad de Madrid

FP-NextGen-AccesoDatos ?? Repositorios de materiales y proyectos usados como ejemplos en FP-NextGen para el módulo de Acceso a Datos de 2º DAM en la C

José Luis González Sánchez 15 Nov 28, 2022
Projeto JINCAL, baseado em Java e utilizando POO, dois programas unificados que calculam o IMC e a Taxa Metabólica do Usuário

Projeto_Modulo1 Projeto JINCAL, baseado em Java e utilizando POO, dois programas unificados que calculam o IMC e a Taxa Metabólica do Usuário Sejam be

Igor Mendes 4 Jan 29, 2022
Bot de Telegram que informa del precio del combustible en las gasolineras más próximas a tu ubicación

Telegram BOT Bot de Telegram en JAVA y SQLite. Sirve para consultar los precios de las gasolineras más cercanas a tu ubicación. Los datos son proceden

null 6 Jan 12, 2022
Uma API REST com funcionalidades de CRUD que simula um sistema de leilão 💰.

Leilão API REST Essa aplicação foi feita para ajudar aqueles que ainda estão com alguma dúvida, sobre o funcionamento de um API REST em Spring. Já que

Fábio Henrique 4 Feb 23, 2022
Twiscord es una simple aplicación que permite conectar Twitter y Discord para poder publicar cosas en ambas plataformas a la vez.

Twiscord Twiscord es una simple aplicación que permite conectar Twitter y Discord para poder publicar en ambas plataformas a la vez dedicado a streame

null 2 Jan 10, 2022
Projeto criado no Santander Dev Week 2022 + DIO com o intuito de desenvolver uma camada de APIs (backend) que será utilizada pelo frontend.

Santader Dev Week + DIO 2022 - APIs Backend da aplicação de movimentação financeira Este repositório contém o backend da aplicação que foi desenvolvid

Pedro Antunes Negrão 2 Sep 7, 2022
EscamasDupeCheck es un Minecraft Forge Mod 1.8.9 para Hypixel Skyblock que agrega un Dupe Checker a Skyblock

EDC dupe check para Hypixel Skyblock EscamasDupeCheck es un Minecraft Forge Mod 1.8.9 para Hypixel Skyblock que agrega un Dupe Checker a Skyblock Lo q

alexander carrareas 1 Oct 26, 2022