devterview_$ iniciar simulação

Checked vs unchecked exceptions

MédioPlenoTratamento de erro

Pergunta

Qual a diferença entre checked e unchecked exceptions em Java, e qual a crítica comum às checked exceptions?

Resposta esperada

Checked (herda de `Exception`, não de `RuntimeException`): o compilador obriga a tratar ou declarar com `throws` — pensadas pra condições recuperáveis e esperadas (arquivo não encontrado, I/O). Unchecked (herda de `RuntimeException`): não exigem declaração — pra erros de programação (null, índice inválido, estado ilegal). Crítica: checked exceptions poluem assinaturas ao longo de toda a cadeia de chamada, incentivam `catch` vazio pra 'calar o compilador', e não compõem bem com lambdas/streams. Por isso muito código moderno (e frameworks como Spring) prefere embrulhar em unchecked. A escolha certa é: recuperável e o chamador realmente pode agir → checked pode valer; senão → unchecked.

Por que perguntam isso

Pergunta pleno de Java. Sinal de experiência: citar o `catch` vazio e o atrito com streams/lambdas como motivo prático da preferência por unchecked.

#exceptions#checked#unchecked
publicidade

Relacionadas