Попробуйте поймать в рамках инициализации массива - PullRequest
0 голосов
/ 18 февраля 2012

быстрый вопрос. Есть ли способ сделать это возможным?

int array [] =  new int [
     (try {
          Integer.parseInt (/*get string input here*/);
          }
     catch (NumberFormatException e){
     //error handling here
     )
];

Ответы [ 3 ]

0 голосов
/ 18 февраля 2012

Как сказал Брайан. Вам нужно переместить блок try / catch выше инициализации массива.

int i;

try{
  string myString = "1";
 i = Integer.parseInt(myString)l
} catch(NumberFormatException e){
  //handle
}

int array [] = new int[3];
0 голосов
/ 18 февраля 2012

См. Ниже ...

int myArray[] = new int[10];
String tempString = "1";
try {
    for (int i=0;i<=9;i++) {
        tempString += i;
        myArray[i]=Integer.parseInt(tempString);
    }
} catch (NumberFormatException nfe) {
    // print error
} catch (Exception e) {
    // print error
}
0 голосов
/ 18 февраля 2012

Это недопустимый синтаксис.Попробуйте что-то вроде этого:

int number;
try
{
     number = Integer.parseInt (/*get string input here*/);
}
catch (NumberFormatException e)
{
     //error handling here
}

int array [] =  new int [2];
array[0] = number;

Это немного многословно, но, я думаю, добро пожаловать на Java.

...