catch 블록을 실행하려고하지만 식별자가 필요하다고 계속 말합니다. 어떤 도움이라도 환영받을 것입니다. 이 메서드의 목적 (그것은 내가 테스트 할 수있는 메인에있다)은 정수에 유효한 값을 얻는 것이다. 값이 유효하지 않으면 유효한 숫자가 입력 될 때까지 반복되어야합니다. 나는 while 루프와 try ... catch를 사용하여 예외를 수정하려고 시도했다. 당신은 catch
문에서 NumberFormatException
의 이름 (식별자)를 정의하지 않습니다try catch 블록에서 식별자가 필요합니다.
import javax.swing.JOptionPane;
import java.lang.Integer;
public class test
{
public static void main (String[] args) throws NumberFormatException
{
String input;
boolean x = false;
int number;
input = JOptionPane.showInputDialog("Enter an integer: "); //creates input box for user to enter integer value
number = Integer.parseInt(input);
try
{
while (number < -2147483648 && number > 2147483647)
{
x = false;
number = Integer.parseInt(input);
System.out.println("You selected: " + number)
}
}
catch (NumberFormatException e)
{
input = JOptionPane.showInputDialog("Enter a valid integer: ");
}
}
}
이 답변을 주셔서 감사합니다. 그러나 지금은 코드가 뒤죽박죽이고 내가 기대했던 것처럼 컴파일되지 않습니다. 내가 할 수있는 어떤 힌트/제안? (나는 대답을 철저히 말할 필요는 없지만 도움을 청합니다.) –
나는 당신이 무엇을 의미하는지 완전히 모릅니다. 코드가 어떻게 뒤죽박죽입니까? 당신이 게시 한 것은 뒤죽박죽이되어 보입니다. 그리고 코드가 컴파일되거나 컴파일되지 않습니다. 네가 기대했던대로 행동하지 않는다는 것을 의미합니까? – dursk
네, 그 말을 더 잘 표현할 수 있습니다. -2147483648보다 큰 값과 2147483647보다 작은 값을 입력하면 루프가 시작됩니다. 어느 것이 내가 원했던 것의 반대입니다. 둘째로 유효하지 않아야하는 번호를 입력하면 예외 오류가 발생합니다. –