Java 中不可达代码错误
不可达语句是指在程序执行过程中不会被执行的语句,称为不可达语句。由于以下原因,这些语句可能无法访问:
- 他们面前有一份申报表
- 在他们面前有一个无限循环
- 在 try 块中引发异常后的任何语句
可能出现此错误的场景:
- 在它们之前有一个返回语句:当一个返回语句被执行时,那个函数的执行就在那里被停止。因此,此后的任何语句都不会被执行。这将导致无法访问的代码错误。
示例:
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");
}
}
- 编译错误:
prog.java:11:错误:不可达语句 System.out.println(“我想打印”); ^ 1 错误
- 前面有一个无限循环:假设在“if”语句里面,如果在 break 语句之后写语句,那么写在“break”关键字下面的语句永远不会执行,因为如果条件为 false,那么循环永远不会执行。如果条件为真,那么由于“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:错误:不可达语句 System.out.println(“我想打印”); ^ 1 错误
- 抛出异常后的任何语句:如果我们抛出异常后在 try-catch 块中添加了任何语句,那么这些语句是不可达的,因为出现了异常事件,执行跳转到 catch 块或者 finally 块。抛出后的行不会立即执行。
示例:
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:错误:不可达语句 system . out . println(“Hello”); ^ 1 错误
- 写入 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:错误:不可达语句 system . out . println(“Hello”); ^ 1 错误
版权属于:月萌API www.moonapi.com,转载请注明出处