이 코드는 사용자 입력을 요구합니다.시도하십시오. 캐치가 올바른 값을 반환 할 수 없습니다.
사용자가 잘못된 입력을 보내고 아래의 예외가 발생하면 사용자에게 다시 시도하게합니다.
예외가 발생한 후 getInputNumber()가 트리거되고 사용자가 숫자로 올바른 입력을 입력하면 올바른 숫자를 반환하는 반환이 트리거됩니다. 이 복귀 후
, 그것은 FormatException을 따라서 올바른 숫자 값을 삭제하고 나는 그것이 올바른 값을 얻기 위해 수정뿐만 아니라, 그 경우에 사용자가 다시 시도 할 수 있도록 유지할 수있는 방법 만 0
반환에 반환 정확한 입력을 놓친다 고요?
private static int getInputNumber()
{
int number = 0;
try
{
number = Convert.ToInt32(Console.ReadLine());
}
catch (Exception ex)
{
if (ex is FormatException)
{
Console.Clear();
Console.WriteLine("Wrong format! \nTry numbers instead.");
getInputNumber();
}
else if (ex is OverflowException)
{
Console.Clear();
Console.WriteLine("The number you entered is too large.\nTry a number between 1 and 2,147,483,647");
getInputNumber();
}
}
return number;
}
누가'getInputNumber' 메소드를 호출합니까? 정확히 무슨 일이 일어나는지 알아 내기 위해 코드를 디버깅 했습니까? –
catch 블록에'number = getInputNumber();'라고 써야합니다. –
좋아요! @ChetanRanpariya, 당신은 내가 의도 한 것처럼 그것을 고쳐 준 답을합니다. – jon