DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • Going Stateless: Scaling MCP Servers to Cloud-Native Java and HTTP
  • Compliance Reporting Without Losing the Spreadsheet or the Control
  • Differential Flamegraphs in Java in Jeffrey Microscope
  • Jeffrey Microscope for Generating Flame Graphs in Java

Trending

  • Scaling Teams, Scaling Systems: Unlocking Developer Productivity With Platform Engineering
  • Slopsquatting: A New Supply Chain Threat From AI Coding Agents
  • The AI Reliability Gap: Why Enterprise AI Is Failing Long Before It Reaches Production
  • Building Cross-Team SLO Contracts for Performance Accountability
  1. DZone
  2. Coding
  3. Java
  4. Exception Handling With the Chain Of Responsibility

Exception Handling With the Chain Of Responsibility

This overview of exception handling covers an overview of how handling should work and explores how to use a chain of responsibility for your exceptions.

By 
Mahdieh Asiaban user avatar
Mahdieh Asiaban
·
Updated Feb. 14, 18 · Tutorial
Likes (13)
Comment
Save
Tweet
Share
31.9K Views

Join the DZone community and get the full member experience.

Join For Free

An exception (or exceptional event) is a problem that arises during the execution of a program. When an exception occurs, the normal flow of the program is disrupted and the program/application terminates abnormally, which is not recommended. Therefore, these exceptions are to be handled.

An exception can occur for many different reasons. The following are some scenarios where an exception occurs.

  • A user has entered invalid data.
  • A file that needs to be opened cannot be found.
  • A network connection has been lost in the middle of communications or the JVM has run out of memory.

Class Hierarchy

alt text

Based on these, we have three categories of exceptions. You need to understand them to know how exception handling works in Java.

According to Item 58 - Use checked exceptions for recoverable conditions and runtime exceptions for programming errors, from Effective Java 2/e by Joshua Bloch, the Java programming language provides three kinds of throwables.

  1. Checked exceptions: Use exceptions for conditions from which the caller can reasonably be expected to recover.

  2. Runtime exceptions (unchecked exceptions): Use exceptions to indicate programming errors. All of the unchecked throwables you implement should use subclass RuntimeException

  3. Errors

Motivation

We can view Chain Of Responsibility — Design Pattern for this purpose.

alt text

Example: When an exception is thrown in a method, the runtime checks to see if the method has a mechanism to handle the exception or if it should be passed up the call stack. When passed up the call stack, the process repeats until the code to handle the exception is encountered or until there are no more parent objects to hand the request to.

For see the source code on GitHub, please refer to this link.

Java (programming language)

Opinions expressed by DZone contributors are their own.

Related

  • Going Stateless: Scaling MCP Servers to Cloud-Native Java and HTTP
  • Compliance Reporting Without Losing the Spreadsheet or the Control
  • Differential Flamegraphs in Java in Jeffrey Microscope
  • Jeffrey Microscope for Generating Flame Graphs in Java

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook