¡GoConqr estrena diseño! Cuéntanos qué te parece.

Apuntes

Lidando com exceções

Brenda Gabriela Senra da Silva Java: consumindo API, gravando arquivos e lidando com erros Java Portugués 8 páginas

Contenido del apunte (8)

Página 1

Identificando erros

Stack trace: rastro da pilha de execução

try → código que pode dar erro

catch → o que fazer se o erro acontecer

Se der erro:

o try para

o catch executa

Nunca os dois.

Variáveis criadas no try não existem fora dele

Sempre declare a variável antes do try se precisar usar depois

// código que PODE dar erro

} catch (TipoDoErro e) {

// o que fazer SE o erro acontecer

}

4️⃣ Exceção NÃO deve ter if

💥 Regra importantíssima:

❌ Nunca coloque lógica de validação dentro da exceção

A exceção não decide se a senha é inválida

Ela só diz: "a senha é inválida".

Quem decide isso é o código principal (if).

Página 2

Variáveis

Escopo (anota isso ⭐)

Uma variável só existe dentro do bloco { } onde foi criada

{

int x = 10;

}

System.out.println(x); // ❌ ERRO

Divisão entre valores

🧠 Regra de ouro do Java (anota isso)

Quem manda na conta são os tipos dos valores,

não o tipo da variável.

🧠 Analogia simples

Dois números inteiros → conta inteira

Um número quebrado → conta quebrada

int ÷ int = int

double ÷ int = double

🔹 Situação

Uma variável é double, mas o resultado é int.

Exemplo:

double n1 = 5;

int n2 = 2;

int division = n1 / n2;

❌ ERRO DE COMPILAÇÃO

❓ Por quê?

Porque:

n1 / n2 → o resultado é double (2.5)

Você está tentando guardar 2.5 dentro de um int

Java não deixa perder informação automaticamente

Java nunca converte double → int sozinho.

Se quiser, você precisa avisar com cast.

Situação Funciona?

double / int → int ❌

double / int → double ✅

cast para int ✅ (perde decimal)

Página 3

Hierarquia

🌳 A hierarquia dos erros (bem resumida)

Em Java, todos os erros vêm dessa raiz:

Throwable

A partir dela, o Java separa em dois galhos:

Throwable

├── Error

└── Exception

Error

Error

├── OutOfMemoryError

├── StackOverflowError

👉 Erros graves da JVM

👉 Não usamos try/catch neles

Exception

Exception

├── RuntimeException

│ ├── NullPointerException

│ ├── NumberFormatException

│ ├── IllegalArgumentException

└── IOException

👉 Essas são as exceções do dia a dia

O que significa “filho” na hierarquia?

Exemplo:

Exception └── RuntimeException └── NumberFormatException

➡️ NumberFormatException é uma RuntimeException

➡️ RuntimeException é uma Exception

💡 Por que isso importa no try/catch?

Porque o Java pensa assim:

“Se eu pegar o pai, eu pego todos os filhos.”

🎯 Exemplo prático (bem importante)

try {

int n = Integer.parseInt("abc");

} catch (Exception e) {

System.out.println("Erro");

}

✔️ Funciona, porque:

NumberFormatException é filha de Exception

Mas olha isso:

try {

int n = Integer.parseInt("abc");

} catch (NumberFormatException e) {

System.out.println("Erro de número");

}

✔️ Também funciona

👉 Aqui você pegou o filho direto

🚨 Regra MUITO importante (anota ⭐)

O catch mais específico vem primeiro.

❌ ERRADO:

catch (Exception e) { }

catch (NumberFormatException e) { } // nunca roda

✔️ CERTO:

catch (NumberFormatException e) { }

catch (Exception e) { }

Página 4

This

this.message = message;

tradução literal:

this.message → o message que pertence ao objeto

= message → recebe o valor que veio no parâmetro

Página 5

Throw

throw lança a exceção

throws declara que o método pode lançar exceções

throw para o programa

catch decide o que fazer

catch só existe depois de um try.

Formas válidas em Java

1️⃣ try + catch

try { } catch (Exception e) { }

2️⃣ try + catch + finally

try { } catch (Exception e) { } finally { }

3️⃣ try + finally

try { } finally { }

finally aparece mais quando mexe com arquivo, rede, banco

Exceções do Java podem ser lançadas automaticamente ou manualmente.

Java lança sozinho → não precisa throw

Você quer controlar o erro → usa throw

Página 6

🔹 1️⃣ Tipos da conta × Tipo da variável resultado

Operação Tipo do resultado da conta Variável Funciona? Resultado

int / int int int ✅ inteiro

int / int int double ✅ inteiro com .0

int / double double double ✅ decimal

double / int double double ✅ decimal

double / double double double ✅ decimal

int / double double int ❌ erro

double / int double int ❌ erro

double / double double int ❌ erro

📊 TABELA — Divisão, tipos e resultados em Java

Página 7

🧠 Fluxo completo (isso é o mais importante)

1️⃣ A mensagem nasce no throw

throw new InvalidPasswordException("Senha muito curta");

2️⃣ O construtor recebe a mensagem

public InvalidPasswordException(String message) {

super(message);

}

👉 Aqui ela é armazenada

3️⃣ O catch captura a exceção

catch (InvalidPasswordException e) {

4️⃣ getMessage() lê o que foi armazenado

System.out.println(e.getMessage());

📌 Frase perfeita pra anotar

super(message) guarda a mensagem.

getMessage() mostra a mensagem.

Exceções do Java podem ser lançadas automaticamente ou manualmente.

Java lança sozinho → não precisa throw

Você quer controlar o erro → usa throw

Página 8

response.statusCode() → verifica se a requisição deu certo ou deu erro

e.printStackTrace() mostra o erro completo para o programador entender o que deu errado.

Códigos HTTP não são do GitHub (são da Web)

Os números 200, 404, 500 não são exclusivos do GitHub.

Eles vêm do protocolo HTTP, que toda a web usa.

Você pode procurar por:

“HTTP status codes”

“códigos de status HTTP”

Exemplos clássicos:

200 → OK

400 → Bad Request

401 → Unauthorized

403 → Forbidden

404 → Not Found

500 → Internal Server Error

📌 Qualquer API REST usa isso (GitHub, Spotify, Google, etc.).

Información

Descripción
Java Java: consumindo API, gravando arquivos e lidando com erros Apunte sobre Lidando com exceções, creado por Brenda Gabriela Senra da Silva el 16/12/2025.
Visitas
7
Valoración

Escríbenos

¿Sobre qué es tu mensaje?

¿Qué te parece el nuevo diseño?

¿Te gusta?