Java 在catch块中是否可以访问try块中定义的标签? 试试看{ 做{ 输入:if(choice2!=null) System.out.println(“请输入有效选项”); choice2=reader.readLine(); }当((int)choice2.charAt(0)>=65&(int)choice2.charAt(0)

Java 在catch块中是否可以访问try块中定义的标签? 试试看{ 做{ 输入:if(choice2!=null) System.out.println(“请输入有效选项”); choice2=reader.readLine(); }当((int)choice2.charAt(0)>=65&(int)choice2.charAt(0),java,exception,nullpointerexception,label,Java,Exception,Nullpointerexception,Label,将try catch移动到循环体中时,您可能想标记循环。而且,即使它们是可选的,也要使用大括号。例如 try { do { input: if (choice2 != null) System.out.println("Please enter a valid choice"); choice2 = reader.readLine(); } wh

try catch
移动到循环体中时,您可能想标记循环。而且,即使它们是可选的,也要使用大括号。例如

try {
            do {
                input: if (choice2 != null)
                    System.out.println("Please enter a valid choice");
                choice2 = reader.readLine();
            } while ((int) choice2.charAt(0) >= 65 && (int) choice2.charAt(0) <= 69);
        } catch (StringIndexOutOfBoundsException e) {
            continue input;
        }
输入:do{
试一试{
if(choice2!=null){
System.out.println(“请输入有效选项”);
}
choice2=reader.readLine();
}捕捉(StringIndexOutOfBoundsException e){
继续输入;
}

}当((int)choice2.charAt(0)>=65&(int)choice2.charAt(0)将
try catch
移动到循环体中时,您可能想标记循环。而且,即使它们是可选的,也要使用大括号。例如

try {
            do {
                input: if (choice2 != null)
                    System.out.println("Please enter a valid choice");
                choice2 = reader.readLine();
            } while ((int) choice2.charAt(0) >= 65 && (int) choice2.charAt(0) <= 69);
        } catch (StringIndexOutOfBoundsException e) {
            continue input;
        }
输入:do{
试一试{
if(choice2!=null){
System.out.println(“请输入有效选项”);
}
choice2=reader.readLine();
}捕捉(StringIndexOutOfBoundsException e){
继续输入;
}

}当((int)choice2.charAt(0)>=65&(int)choice2.charAt(0)时,不应将异常用于流控制。删除try/catch,只需执行
while(choice2==null | | choice2.isEmpty()| |!(choice2.charAt(0)>=65&&choice2.charAt(0)我知道这可以通过一个while循环来实现。但出于某种原因,我的培训师让我这样做,并处理用户未输入任何内容并按enter键时的异常。您不应该将异常用于流控制。删除try/catch,只需执行
while(choice2==null | | choice2.isEmpty()| |!(choice2.charAt(0)>=65&&choice2.charAt(0)我知道这可以通过一个while循环来实现。但出于某种原因,我的培训师要求我以这种方式完成,并处理用户未输入任何内容并按enter键时的异常情况。