Automation Using Selenium Webdriver

Monday 14 November 2016

Top 20 Java Exception handling interview questions and answers

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

throw%2Bvs%2Bthrows

 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










Find top two maximum numbers in a array java

  • Hi Friends today we will discuss about how to find top two maximum numbers in an array using java program.
  • For this we have written separate function to perform logic
  • findTwoMaxNumbers method takes integer  array as an argument
  • Initially take two variables to find top to numbers and assign to zero.
  • By using for each loop iterating array and compare current value with these values
  • If our value is less than current array value then assign current value to max1 
  • And assign maxone to maxtwo because maxtwo should be second highest.
  • After completion of all iterations maxone will have top value and maxtwo will have second maximum value.
  • Print first maximum and second maximum values.
  • So from main method create array and pass to findTwoMaxNumbers(int [] ar).


Program #1: Java interview programs to practice: find top two maximum numbers in an array without recursion 

package arraysInterviewPrograms.java;
public class FindTopTwo {
public void findTwoMaxNumbers(int[] array){
       
 int maxOne = 0;
 int maxTwo = 0;
for(int i:array){
    if(maxOne < i){
           maxTwo = maxOne;
           maxOne =i;
     } else if(maxTwo < i){
                maxTwo = i;
     }
}
        
  System.out.println("First Maximum Number: "+maxOne);
  System.out.println("Second Maximum Number: "+maxTwo);
}
     
public static void main(String a[]){
        int num[] = {4,23,67,1,76,1,98,13};
        FindTopTwo obj = new FindTopTwo();
        obj.findTwoMaxNumbers(num);
        obj.findTwoMaxNumbers(new int[]{4,5,6,90,1});
}
}


Output:


First Maximum Number: 98
Second Maximum Number: 76
First Maximum Number: 90
Second Maximum Number: 6

Calling static method from non static method in java

  • Static means class level and non static means object level.
  • Non static variable gets memory in each in every object dynamically.
  • Static variables are not part of object and while class loading itself all static variables gets memory.
  • Like static variables we have static methods. Without creating object we can access static methods.
  • Static methods are class level. and We can still access static methods in side non static methods.
  • We can call static methods without using object also by using class name.
  • And the answer to the question of  "is it possible to call static methods from non static methods in java" is yes.
  • If we are calling a static method from non static methods means calling a single common method using unique object of class which is possible. 


Program #1: Java example program to call static method from non static method. 


;
public class StaticMethodDemo {
void nonStaticMethod(){
        
        System.out.println("Hi i am non static method");
        staticMethod();
 }
    
 public static void staticMethod(){
        
        System.out.println("Hi i am static method");
  }
    
 public static void main(String[] args) {
        StaticMethodDemo obj= new StaticMethodDemo();
        
        obj.nonStaticMethod();
    }
}
 Output:

Hi i am non static method
Hi i am static method

In the above program we have created object of the class and called a non static method on that object and in side non static method called a static method.
So it is always possible to access static variables and static methods in side non static methods

 Program #2: Java example program to call static method from non static method.