저는 C++을 처음 사용하고 있으며 '시도'를 테스트 중입니다. 나는 잡힐해야하는지 예외가 던져 단어 나 구문의 분열을 초래할 수있는 경우 그 자체로 그러나 확실하지 오전 :C++ 어떤 예외를 사용해야합니까?/사용자 입력을 결정하십시오.
예를 들어 :
int current_year = 1;
//code....
cout << "What year is it?\n";
cin >> current_year;
while (n>1) {
try{
throw (current_year/current_year);
}
catch (exception) {
cout << "What year is it?\n";
cin >> current_year;
}
catch (...){
n = 0;
여기서, CURRENT_YEAR가 정의 될 때 int이고, 사용자가 단어 나 구를 입력하면 "cin < <"을 통해 설정되며 다른 단어 (hense : throw (current_year/current_year);)로 단어를 나눌 때 오류가 발생해야합니다.
그러나 프로그램은 catch (예외) 예외가있는 오류를 catch하지 않습니다. 누군가 내가 사용할 예외를 설명하거나 current_year가 실제로 정수인지 확인하기 위해이 프로그램을 다시 작성하는 방법을 설명해 줄 수 있습니까?
감사합니다.
(다른 하나 : isdigit이 작동하지 않습니다.이 숫자는 -1에서 255까지만 인식하기 때문에 믿을 수 있습니다. 2014를 입력하고 있습니다. 따라서 isdigit을 잘못 사용했다면 나를 알았어.)
'try'는 함수가 아닙니다 ... 또한'int'는'std :: exception' 타입이 아닙니다. 마지막으로, 절대적으로 알고 있어야하는 것보다 더 큰 것을 잡지 마십시오. – Deduplicator
"다른 단어로 단어를 나누는 것"은 무엇을 의미합니까? 사용자 입력의 예를 들어 보겠습니다. 예외를 발생시켜야한다고 생각하는 입력을 입력하십시오. – interjay
이런 종류의 잘못된 입력이 예상되므로 예외를 throw하는 것을 신경 쓰지 않을 것입니다. 사용자에게 입력해야 할 내용을 알려주고 입력을 다시 요청하십시오. – jweyrich