Skip to content

Instantly share code, notes, and snippets.

@gAmUssA
Created October 19, 2012 17:52
Show Gist options
  • Save gAmUssA/3919617 to your computer and use it in GitHub Desktop.
Save gAmUssA/3919617 to your computer and use it in GitHub Desktop.
small note about unchecked and checked exceptions in Java

Unchecked exceptions :

  • represent defects in the program (bugs) - often invalid arguments passed to a non-private method. To quote from The Java Programming Language, by Gosling, Arnold, and Holmes :

«Unchecked runtime exceptions represent conditions that, generally speaking, reflect errors in your program's logic and cannot be reasonably recovered from at run time.»

  • are subclasses of RuntimeException, and are usually implemented using IllegalArgumentException, NullPointerException, or IllegalStateException
  • a method is not obliged to establish a policy for the unchecked exceptions thrown by its implementation (and they almost always do not do so)

Checked exceptions :

  • represent invalid conditions in areas outside the immediate control of the program (invalid user input, database problems, network outages, absent files)
  • are subclasses of Exception
  • a method is obliged to establish a policy for all checked exceptions thrown by its implementation (either pass the checked exception further up the stack, or handle it somehow)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment