尝试不执行代码?

时间:2017-06-17 18:16:06

标签: java try-catch

所以,我有一个问题,但我真的不知道究竟是什么导致它。我有一个非常有效的程序,但它无法承受每一个条目。为了解决这个问题,我添加了一个try-catch块。在更改之前,我只能在try块中看到两行,而不是所有try-catch代码。 到现在为止,我认为一切都应该是正确的。但是当我尝试编译我的代码时,我收到了一个“”错误:找不到符号(变量:workingPer)“”。我认为try块总是被执行,为什么这个变量没有被定义?我已经研究过其他类似的问题,但找不到解决方案。

注意:这是代码的一部分,我只是为了使问题更容易看到。但如果您需要更多代码,请告诉我。

try
{
    String[] workedPer = newPer.split("=");
    workedPer[1] = workedPer[1].substring(0, workedPer[1].length() -1);
}

catch (ArrayIndexOutOfBoundsException ex)
{
    System.out.println("Invalid Entry. Program will stop now...");
    System.exit(1);
}

for (Material mat : readyContent)
{
    if ((mat.category).equals(workedPer[0]))
    {
        checker = true;
    }
}

1 个答案:

答案 0 :(得分:1)

因为import java.util.Arrays; public class ArrayTest { public static void main(String[] args) { int[] array = {1,2,3,4,5,6,7,8,9,10,11,12,13}; int even=0; int odd=0; int[] Even = new int[13]; int[] Odd = new int[13]; for ( int i=0; i<array.length; i++) { if (array[i] % 2 == 0) { Even[even++] = array[i]; } else { Odd[odd++] = array[i]; } } for ( int i=0; i<array.length/2; i++ ) { int temp = array[i]; array[i] = array[array.length-(1+i)]; array[array.length-(1+i)] = temp; } System.out.println("Array after reverse: \n" + Arrays.toString(array)); System.out.println("Even: "+even+" "); System.out.println(Arrays.toString(Even)); System.out.println("Odd: "+odd+" "); System.out.println(Arrays.toString(Odd)); } } 变量的范围仅限于workedPer阻止。

您需要将代码更改为

try

这样,它可以在String[] workedPer = null; try { workedPer = newPer.split("="); workedPer[1] = workedPer[1].substring(0, workedPer[1].length() -1); } 循环

中访问
for