The Unreachable statements refers to statements that won’t get executed during the execution of the program are called Unreachable Statements. These statements might be unreachable because of the following reasons:
- Have a return statement before them
- Have an infinite loop before them
- Any statements after throwing exception in a try block
Scenarios where this error can occur:
- Have a return statement before them: When a return statement gets executed, then that function execution gets stopped right there. Therefore any statement after that wont get executed. This results in unreachable code error.
Example:
Java
class GFG { public static void main(String args[]) { System.out.println( "I will get printed" ); return ; // it will never run and gives error // as unreachable code. System.out.println( "I want to get printed" ); } } |
- Compile Errors:
prog.java:11: error: unreachable statement
System.out.println(“I want to get printed”);
^
1 error
- Have an infinite loop before them: Suppose inside “if” statement if you write statements after break statement, then the statements which are written below “break” keyword will never execute because if the condition is false, then the loop will never execute. And if the condition is true, then due to “break” it will never execute, since “break” takes the flow of execution outside the “if” statement.
Example:
Java
class GFG { public static void main(String args[]) { int a = 2 ; for (;;) { if (a == 2 ) { break ; // it will never execute, so // same error will be there. System.out.println( "I want to get printed" ); } } } } |
- Compile Errors:
prog.java:13: error: unreachable statement
System.out.println(“I want to get printed”);
^
1 error
- Any statement after throwing an exception: If we add any statements in a try-catch block after throwing an exception, those statements are unreachable because there is an exceptional event and execution jumps to catch block or finally block. The lines immediately after the throw is not executed.
Example:
Java
class GFG { public static void main(String args[]) { try { throw new Exception( "Custom Exception" ); // Unreachable code System.out.println( "Hello" ); } catch (Exception exception) { exception.printStackTrace(); } } } |
- Compile Errors:
prog.java:7: error: unreachable statement
System.out.println(“Hello”);
^
1 error
- Any statement after writing continue : If we add any statements in a loop after writing the continue keyword, those statements are unreachable because execution jumps to the top of the for loop. The lines immediately after the continue is not executed.
Example:
Java
class GFG { public static void main(String args[]) { for ( int i = 0 ; i < 5 ; i++) { continue ; System.out.println( "Hello" ); } } } |
- Compile Errors:
prog.java:6: error: unreachable statement
System.out.println(“Hello”);
^
1 error