/* The finally block always executed when the try block exits.
* This ensures that the finally block is executed even if an unexpected exception occurs.
*/
public class FinallyBlock {
public static int retInt() {
int a = 100;
try {
return a;
}catch(Exception e) {
System.out.println("catch called");
System.out.println(e);
return a;
}finally {
//a = 5000;
System.out.println("finally called");
//return a;
}
}
public static void main(String[] args) {
System.out.println(retInt());
}
}
finally
Sometimes we have an important code in our program that needs to be executed irrespective of whether or not the exception is thrown. This code is placed in a special block starting with the “Finally” keyword. The Finally block follows the Try-catch block.
public class Main{
static void validate_Age(int age){
//if specified age is < 18, throw ArithmeticException
if(age<18)
throw new ArithmeticException("Not eligible to vote and drive!!");
else //print the message
System.out.println("Eligible to vote and drive!!");
}
public static void main(String args[]){
//call validate_Age method
validate_Age(10);
System.out.println("rest of the code...");
}
}
throw
Java provides a keyword “throw” using which we can explicitly throw the exceptions in the code. For example, if we are checking arithmetic operations and want to raise some exceptions after checking operands we can do so using the ‘throw’ keyword. Using the throw keyword, we can throw the checked or unchecked exceptions. The throw keyword is also used to throw custom exceptions.