Top 20 Java Exception handling interview questions and answers
1.What is an exception?
>Exceptions are the objects representing the logical errors that occur at run time and makes JVM enters
into the state of "ambiguity".
>The objects which are automatically created by the JVM for representing these run time errors are known
as Exceptions
2.What are the differences between exception and error.
An Error is a subclass of Throwable that indicates serious problems that a reasonable application
should not try to catch. Most such errors are abnormal conditions.
Difference between exception and error
3.How the exceptions are handled in java
Exceptions can be handled using try catch blocks.
The statements which are proven to generate exceptions need to keep in try block so that whenever is there any exception identified in try block that will be assigned to corresponding exception class object in catch block
More information about try catch finally
4.What is the super class for Exception and Error
Throwable.
public class Exception extends Throwable implements Serializable
public class Error extends Throwable implements Serializable
5.Exceptions are defined in which java package
java.lang.Exception
6.What is throw keyword in java?
Throw keyword is used to throw exception manually.
Whenever it is required to suspend the execution of the functionality based on the user defined logical
error condition we will use this throw keyword to throw exception.
Throw keyword in java
7.Can we have try block without catch block
It is possible to have try block without catch block by using finally block
Java supports try with finally block
As we know finally block will always executes even there is an exception occurred in try block, Except
System.exit() it will executes always.
Is it possible to write try block without catch block
8.Can we write multiple catch blocks under single try block?
Yes we can write multiple catch blocks under single try block.
Multiple catch blocks in java
9. What are unreachable blocks in java
The block of statements to which the control would never reach under any case can be called as unreachable blocks.
Unreachable blocks are not supported by java.
Unreachable blocks in java
10.How to write user defined exception or custom exception in java
By extending Exception class we can define custom exceptions.
We need to write a constructor for passing message .
User defined exception in java
class CustomException extends Exception { } // this will create Checked Exception
class CustomException extends IOExcpetion { } // this will create Checked exception
class CustomException extends NullPonterExcpetion { } // this will create UnChecked
exception
11.What are the different ways to print exception message on console.
In Java there are three ways to find the details of the exception .
They are
Using an object of java.lang.Exception
Using public void printStackTrace() method
Using public String getMessage() method.
3 different ways to print exception message in java
12.What are the differences between final finally and finalize in java
Finally vs final vs finalize
13.Can we write return statement in try and catch blocks
Yes we can write return statement of the method in try block and catch block
We need to follow some rules to use it.Please check below link
Return statement in try and catch blocks
14. Can we write return statement in finally block
Yes we can write return statement of the method in finally block
We need to follow some rules to use it.Please check below link
Return statement in finally block
15. What are the differences between throw and throws
- throw keyword used to throw user defined exceptions.(we can throw predefined exception too)
- Using throws keyword we can explicitly provide the information about unhand-led exceptions of the method to the end user, Java compiler, JVM.
- Throw vs throws
16.Can we change an exception of a method with throws clause from unchecked to checked while overriding it?
- No. As mentioned above already
- If super class method throws exceptions in sub class if you want to mention throws then use same class or its sub class exception.
- So we can not change from unchecked to checked
17.What are the rules we need to follow in overriding if super class method throws exception ?
- If sub class throws checked exception super class should throw same or super class exception of this.
- If super class method throws checked or unchecked exceptions its not mandatory to put throws in sub class overridden method.
- If super class method throws exceptions in sub class if you want to mention throws then use same class or its sub class exception.
18.What happens if we not follow above rules if super class method throws some exception.
Compile time error will come.
package MethodOverridingExamplePrograms;
public class Super{
public void add(){
System.out.println("Super class add method");
}
}
package MethodOverridingInterviewPrograms;
public class Sub extends Super{
void add() throws Exception{ //Compiler Error: Exception Exception is not compatible with
throws clause in Super.add()
System.out.println("Sub class add method");
}
}
package ExceptionHandlingInterviewPrograms;
public class Super{
public void add(){
System.out.println("Super class add method");
}
}
package ExceptionHandlingInterviewPrograms;
public class Sub extends Super{
void add() throws NullPointerException{ // this method throws unchecked exception so no
isuues
System.out.println("Sub class add method");
}
}
19. Is it possible to write multiple exceptions in single catch block
It is not possible prior to java 7.
new feature added in java 7.
package exceptionsFreshersandExperienced;
public class ExceptionhandlingInterviewQuestions{
/**
*
**/
public static void main(String[] args) {
try {
// your code here
} catch (IOException | SQLException ex) {
System.out.println(e);
}
}
}
20. What is try with resource block
One more interesting feature of Java 7 is try with resource
In Java, if you use a resource like input or output streams or any database connection logic you always need to close it after using.
It also can throw exceptions so it has to be in a try block and catch block. The closing logic should be in finally block. This is a least the way until Java 7. This has several disadvantages:
You'd have to check if your ressource is null before closing it
The closing itself can throw exceptions so your finally had to contain another try -catch
Programmers tend to forget to close their resources
The solution given by using try with resource statement.
try(resource-specification)
{
//use the resource
}catch(Exception e)
{
//code
}
Top 20 Java Exception handling interview questions and answers for freshers and experienced