관리 메뉴

JIE0025

[Error] 처리되지 않은 예외 발생(0x75EEA6E2, Project.exe): Microsoft C++ 예외: char, 메모리 위치 0x0053F710. 본문

기타 학습/Error

[Error] 처리되지 않은 예외 발생(0x75EEA6E2, Project.exe): Microsoft C++ 예외: char, 메모리 위치 0x0053F710.

sdoaolo 2021. 6. 1. 17:16
728x90

 

visual studio에서 try-catch 관련 코드를 빌드했는데 다음과 같은 에러가 나왔다. 

 

처리되지 않은 예외 발생(0x75EEA6E2, Project.exe): Microsoft C++ 예외: char, 메모리 위치 0x0053F710.

 

<에러난 코드>

#include <iostream>

using namespace std;

void func(int n){
	try{
    	if(n >0)
        	throw "positive";
        else if(n == 0)
        	throw "zero";
        else
        	throw "negative";
    }
    catch (char * s){
    	cout << s << endl;
    }
}

int main(){

    func(5);
    func(0);
    func(-5);
    
    cout << endl;
    
    getchar();
    
    return 0;
}

 

 

 

알아본 결과,

 

throw를 하는 값은 문자열 리터럴이고, catch하는 값은 <std::string> 형식이기 떄문에 발생한 문제이다. 

 

<std::string>은 문자열 리터럴에서 구성될 수는 있지만, catch절에서 허용되지 않는다. 

 

 

해결방법

 

catch 하는 값 형식에 const를 추가한다.

catch (const char * s){

}