Distinguish Checked and Unchecked Exceptions in Java

Read the full interview experience this question came from →

Quick Overview

Distinguish Java’s compile-time exception obligations from runtime failures. Cover the checked hierarchy, catch-or-declare behavior, propagation, and preserving causes when translating errors.

Distinguish Checked and Unchecked Exceptions in Java

Company: Apple

Role: Software Engineer

Category: Software Engineering Fundamentals

Difficulty: medium

Interview Round: Technical Screen

What is the difference between checked and unchecked exceptions in Java? Give examples and explain what the distinction requires at a method boundary. ### What a Strong Answer Covers Identify the relevant exception hierarchy, explain catch-or-declare checking, and distinguish compile-time obligations from the time an exception is actually thrown. Discuss recovery and propagation without treating every unchecked exception as safe to ignore. ### Follow-up Questions - Does declaring throws handle an exception? - What should a library preserve when translating one exception into another?

Overview: Distinguish Java’s compile-time exception obligations from runtime failures. Cover the checked hierarchy, catch-or-declare behavior, propagation, and preserving causes when translating errors.

Read the full Apple Software Engineer interview experience this question came from

Apple logo
Apple
Mar 14, 2026
mediumSoftware EngineerTechnical ScreenSoftware Engineering Fundamentals
0
0

What is the difference between checked and unchecked exceptions in Java? Give examples and explain what the distinction requires at a method boundary.

What a Strong Answer Covers Guidance

Identify the relevant exception hierarchy, explain catch-or-declare checking, and distinguish compile-time obligations from the time an exception is actually thrown. Discuss recovery and propagation without treating every unchecked exception as safe to ignore.

Follow-up Questions Guidance

  • Does declaring throws handle an exception?
  • What should a library preserve when translating one exception into another?