📜  Java中无法访问的代码错误

📅  最后修改于: 2022-05-13 01:54:52.622000             🧑  作者: Mango

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");
        }
    }
}


  • 编译错误:
  • 在它们之前有一个无限循环:假设在“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");
            }
        }
    }
}
  1. 编译错误:
  • 抛出异常后的任何语句:如果我们在抛出异常后在 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();
        }
    }
}
  • 编译错误:
  • 编写 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");
        }
    }
}
  • 编译错误: