Java中无法访问的代码错误
Unreachable statements是指在程序执行过程中不会执行的语句,称为 Unreachable Statements。由于以下原因,这些语句可能无法访问:
- 在他们面前有一个退货声明
- 在他们面前有一个无限循环
- 在 try 块中抛出异常后的任何语句
可能发生此错误的场景:
- 在它们之前有一个 return 语句:当一个 return 语句被执行时,那个函数的执行就会在那里停止。因此,之后的任何语句都不会被执行。这会导致无法访问的代码错误。
例子:
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");
}
}
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");
}
}
}
}
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();
}
}
}
Java
class GFG {
public static void main(String args[])
{
for (int i = 0; i < 5; i++)
{
continue;
System.out.println("Hello");
}
}
}
- 编译错误:
prog.java:11: error: unreachable statement
System.out.println(“I want to get printed”);
^
1 error
- 在它们之前有一个无限循环:假设在“if”语句中如果你在break语句之后编写语句,那么写在“break”关键字下面的语句将永远不会执行,因为如果条件为假,那么循环将永远不会执行。如果条件为真,那么由于“break”,它将永远不会执行,因为“break”将执行流程置于“if”语句之外。
例子:
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");
}
}
}
}
- 编译错误:
prog.java:13: error: unreachable statement
System.out.println(“I want to get printed”);
^
1 error
- 抛出异常后的任何语句:如果我们在抛出异常后在 try-catch 块中添加任何语句,则这些语句是无法访问的,因为存在异常事件并且执行跳转到 catch 块或 finally 块。不执行 throw 之后的行。
例子:
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();
}
}
}
- 编译错误:
prog.java:7: error: unreachable statement
System.out.println(“Hello”);
^
1 error
- 编写 continue 后的任何语句:如果我们在编写 continue 关键字后在循环中添加任何语句,这些语句将无法访问,因为执行会跳转到 for 循环的顶部。紧接在 continue 之后的行不会被执行。
例子:
Java
class GFG {
public static void main(String args[])
{
for (int i = 0; i < 5; i++)
{
continue;
System.out.println("Hello");
}
}
}
- 编译错误:
prog.java:6: error: unreachable statement
System.out.println(“Hello”);
^
1 error