An exception in Java is nothing but an unpredicted condition. Different types of exceptions in Java can occur while executing a code. It can be a bug or error in the code and stop the flow of the program. You will come across multiple ways to handle the different types of exceptions in Java to prevent code termination. Dive into this article to learn more about the different types of exceptions in Java.
Get curriculum highlights, career paths, industry insights and accelerate your technology journey.
Download brochure
Exception Class Hierarchy in Java
The exception class hierarchy in Java can be defined as the following:
The different types of exceptions in Java serve different purposes. Learn about them below:
Built-in Exceptions
These types of exceptions in Java are predefined within Java libraries. These types of exceptions in Java occur most frequently. You can consider an Arithmetic Exception in this category. This predefined exception is found in the Java.lang.package. These exceptions can be divided into the following categories.
Checked Exceptions
These types of exceptions in Java are called compile-time exceptions. These exceptions are checked by the compiler while the compilation process is ongoing. These types of exceptions in Java can confirm whether a programmer is handling a specific exception.
Examples of Checked Exceptions
The syntax for this type of exception in Java is as follows:
Import java.io.*;
class demo1 {
public static void main(String args[]) {
FileInputStream input1 = null;
/* FileInputStream(File filename) is a constructor that will throw
* FileNotFoundException (a checked exception)
*/
input1 = new FileInputStream("D:/file.txt");
int m;
// The read() of FileInputStream will also throw a checked exception
while(( m = input1.read() ) != -1) {
System.out.print((char)m);
}
// The close() will close the file input stream, and it will also throw an exception
input1.close();
}
}
SQLException: It occurs due to the failure of a database operation.
IOException: It occurs due to the failure of an input/output operation.
ClassNotFoundException: It occurs when a specific class cannot be identified.
NoSuchMethodExceptionL occurs when a specific method cannot be identified.
InstantiationException: It occurs when a specific object cannot be instantiated.
Unchecked Exceptions
These types of exceptions in Java occur during program execution. Therefore, these types of exceptions are also called runtime exceptions. The unchecked exceptions are not given any attention during the compilation process.
Examples of Unchecked Exceptions
The syntax for this type of exception in Java is as follows:
import java.util.Scanner;
public class Sample_RunTimeException {
public static void main(String[] args) {
// Reading user input
Scanner input_dev = new Scanner(System.in);
System.out.print("Enter your age in Numbers: ");
int age1 = input_dev.nextInt();
if (age1>20) {
System.out.println("You can view the page");
} else {
System.out.println("You cannot view the page");
}
}
}
At times, the built-in types of exceptions in Java cannot explain a particular situation. In that case, the user can create user-defined exceptions. This type of exception can enable a programmer to tackle the edge cases for debugging a program.
Example and Syntax for User-Defined Exceptions
The syntax for this type of exception in Java is as follows:
import java.util.*;
class UserDefinedException{
public static void main(String args[]){
try{
throw new NewException(5);
}
catch(NewException ex){
System.out.println(ex) ;
}
}
}
class NewException extends Exception{
int x;
NewException(int y) {
x=y;
}
public String toString(){
return ("Exception value = "+x) ;
}
}
Difference Between Types of Exception in Java: Checked and Unchecked Exception
Checked Expectation
Unchecked Expectation
This type of exception in Java is checked and handled at compile time.
This type of exception in Java is not checked and handled at compile time.
They are direct subclasses but not extended from RuntimeException class.
This is a direct subclass of the RuntimeException class.
They occur when the probability of failure is high.
They occur due to programming errors.
Some common checked exceptions include DataAccessException, iOException, and InterruptedException.
Some common unchecked exceptions include InvalidClassException, ArithmeticException, and NullPointerException.
They are propagated with the help of the throws keyword.
They propagate automatically.
Importance of Proper Exception Handling
Handling the right types of exceptions in Java can help you recover from errors. Therefore, your program will become stronger and more resistant to unexpected conditions. By detecting and tackling the types of exceptions, your program will be able to deliver a more stable user experience.
The different types of exceptions in Java prevent the further execution of a code. You will come across built-in and user-defined exceptions in Java. Built-in exceptions can be checked or unchecked. Meanwhile, the user-defined types of exception can allow programmers to debug programs easily.
FAQs
What are the Challenges Faced While Exceptions in Java?
Some challenges while handling different types of exceptions involve unspecific exceptions. Another challenge is logging and throwing this type of exception in Java.
What are some best practices for handling exceptions in Java?
Some of the best practices for handling different types of exceptions in Java include cleaning up resources in a Finally Block or preferring specific exceptions.
What are the major types of exceptions in Java?
The major types of exceptions in Java include built-in and user-defined exceptions.
How do you create a custom exception class in Java?
You can create custom types of exceptions in Java with the help of user-defined classes.
Hero Vired is a leading LearnTech company dedicated to offering cutting-edge programs in collaboration with top-tier global institutions. As part of the esteemed Hero Group, we are committed to revolutionizing the skill development landscape in India. Our programs, delivered by industry experts, are designed to empower professionals and students with the skills they need to thrive in today’s competitive job market.