Try and Catch in Java
May 1, 2017
Categorised in: Java Core
Exception
When your code can throw an exception (error on run time), you can wrap that code in try and catch block.
Example: ArrayIndexOutOfBoundsException
Code
public class TryAndCatch {
public static void main( String[] args ){
String str = "Hello";
char[] charArr = str.toCharArray();
try {
char lastChar = charArr[charArr.length];
System.out.println(lastChar);
} catch(ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
//System.out.println("Index number out of scope");
}
}
}
Output
java.lang.ArrayIndexOutOfBoundsException: 5
at TryAndCatch.main(TryAndCatch.java:8)
Multiple Catch Blocks
public class TryAndCatch {
public static void main( String[] args ){
String str = "Hello";
char[] charArr = str.toCharArray();
try {
char lastChar = charArr[charArr.length - 1];
System.out.println(lastChar);
String subStr = str.substring(8);
} catch(ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
//System.out.println("Index number out of scope");
} catch(StringIndexOutOfBoundsException e) {
System.out.println("String index out of bound!");
}
}
}
Output
String index out of bound!
Custom Exception
public class TryAndCatch {
public static void main( String[] args ){
String str = "Hello";
char[] charArr = str.toCharArray();
try {
if (charArr.length < 10) {
throw (new Exception("My custom exception")); //this will look for catch block
}
char lastChar = charArr[charArr.length - 1];
System.out.println(lastChar);
String subStr = str.substring(8);
} catch(ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
//System.out.println("Index number out of scope");
} catch(StringIndexOutOfBoundsException e) {
System.out.println("String index out of bound!");
} catch(Exception e) {
System.out.println(e.getMessage());
}
}
}
Output
My custom exception
Notes
- A try block must be followed by at least 1 catch block.
- e is just a name given to exception and it can be reused.
- If your code generates an exception then it will stop to that point itself and not execute further. So, even if you have 2 exceptions, only first will be displayed.
Pratik Kataria is currently learning Springboot and Hibernate.
Technologies known and worked on: C/C++, Java, Python, JavaScript, HTML, CSS, WordPress, Angular, Ionic, MongoDB, SQL and Android.
Softwares known and worked on: Adobe Photoshop, Adobe Illustrator and Adobe After Effects.