C# Language
문자열을 다른 유형으로 변환 할 때 FormatException 처리
수색…
문자열을 정수로 변환 중
명시 적으로 string
을 integer
로 변환하는 데 사용할 수있는 다양한 방법이 있습니다. 예를 들면 다음과 같습니다.
Convert.ToInt16();
Convert.ToInt32();
Convert.ToInt64();
int.Parse();
그러나 입력 문자열에 숫자가 아닌 문자가 포함되어 있으면이 모든 메서드는 FormatException
을 throw합니다. 이를 위해 우리는 예외 처리 ( try..catch
)를 추가로 작성하여 그러한 경우에 처리해야합니다.
예제 설명 :
그럼, 우리의 의견을 알려주십시오 :
string inputString = "10.2";
예제 1 : Convert.ToInt32()
int convertedInt = Convert.ToInt32(inputString); // Failed to Convert
// Throws an Exception "Input string was not in a correct format."
참고 : 같은 다른 언급 된 방법에 대한 간다 즉 - Convert.ToInt16();
및 Convert.ToInt64();
예제 2 : int.Parse()
int convertedInt = int.Parse(inputString); // Same result "Input string was not in a correct format.
어떻게 우회합니까?
앞에서 말했듯이 예외를 처리하기 위해 우리는 보통 다음과 같이 try..catch
가 필요합니다.
try
{
string inputString = "10.2";
int convertedInt = int.Parse(inputString);
}
catch (Exception Ex)
{
//Display some message, that the conversion has failed.
}
그러나 try..catch
사방에 사용하는 것은 좋은 습관이 아니며, 입력이 잘못되면 0
을주고 싶을 수도있는 시나리오가있을 수 있습니다. (위의 방법을 따르면 우리는 convertedInt
0
을 대입해야합니다. catch 블록). 이러한 시나리오를 처리하기 위해 우리는 .TryParse()
라는 특별한 메소드를 사용할 수 있습니다.
.TryParse()
당신에게로 출력 줄 것이다 내부 예외 처리 갖는 방법 out
(매개 변수, 그리고 변환 상태를 나타내는 부울 값을 반환 true
, 변환이 성공했는지를 false
이 실패 할 경우). 반환 값에 따라 변환 상태를 결정할 수 있습니다. 보기 하나 예 :
구문 1 : 반환 값을 Boolean 변수에 저장합니다 .
int convertedInt; // Be the required integer
bool isSuccessConversion = int.TryParse(inputString, out convertedInt);
우리는 isSuccessConversion
후에 Variable isSuccessConversion
을 체크하여 변환 상태를 확인할 수 있습니다. 이 거짓 인 경우의 값 convertedInt
없을 것 0
(당신이 원하는 경우에 반환 값을 체크 할 필요 0
변환 실패를).
구문 2 : if
와 함께 반환 값 확인
if (int.TryParse(inputString, out convertedInt))
{
// convertedInt will have the converted value
// Proceed with that
}
else
{
// Display an error message
}
구문 3 : 반환 값을 확인하지 않고 반환 값을 신경 쓰지 않는다면 다음을 사용할 수 있습니다 (변환 여부는 0
입니다)
int.TryParse(inputString, out convertedInt);
// use the value of convertedInt
// But it will be 0 if not converted