저는 C++을 처음 사용하고 예외 처리 방법을 배우고 있습니다. 다른 유형의 두 변수를 추가하려고하면 프로그램에서 예외가 발생하기를 원합니다. 컴파일 할 때 불일치 오류와 +가 두 유형에서 작동하지 않는다는 메시지가 표시되지만 대신 예외를 throw하려고합니다.데이터 불일치 예외를 throw하는 방법
#include <iostream>
#include <stdexcept>
#include <typeinfo>
using namespace std;
int main() {
try{
int var1 = 6;
string var2 = "7";
if (typeid(var1).name() == typeid(var2).name()){
cout << var1 + var2;
} else {
throw 99;
}
}catch (int e){
cout << "caught a " << e << endl;
}
}
정적 프로그래밍 오류를 잡기 위해 동적 예외 처리가 필요하지 않다는 점을 메타 수업에서 알 수 있습니다. –
"컴파일 할 때 불일치 오류가 발생하지만 대신 예외를 throw하려고합니다."- ** 이유 **? 그것은 전혀 이해가되지 않습니다. 이것은 런타임 예외가 아니라 컴파일 오류 인 좋은 일입니다. –
'typeid (var1) .name() == typeid (var2) .name()'은 포인터를 비교하기 때문에 실제로 아무것도 의미하지 않는다. –