2009-09-13 4 views
0

예외를 잡는 데 문제가 있습니다. 예외를 재현하려고하는데 메시지를받습니다.'현재 위치에 사용할 수있는 소스 코드가 없습니다.' C++ Visual Studio에서 예외를 throw 할 때

현재 위치에 사용할 수있는 소스 코드가 없습니다.

코드

은 매우 간단하다 : 나는 문자열 메시지를 던져 그것을 다시 발생하려고 시도 할 경우

#include <exception> 
using namespace std; 

try { 
    throw exception("Asas"); 
} 
catch (const exception& e) { 
    cout<< "Error msg" << e.what() << endl; 
    throw; //This the error message I get from the IDE. 
} 

또한 반복합니다.

+1

IDE에서 어떤 문맥에서 메시지를 얻습니까? 디버깅 할 때? –

+0

그리고 예상 한 행동은 무엇입니까? –

+0

이 함수를 호출 한 함수가 예외를 catch합니다. –

답변

1

귀하의 질문은 오해의 소지가 있으므로, 더 많은 질문을 드리겠습니다.

당신이 다시 쓰려고 할 때이 메시지가 표시되지만, 무슨 뜻인지는 분명하지 않습니다 : 이것은 컴파일러 오류, 런타임 오류 또는 디버깅 중 발생하는 것입니까? 후자 (내가 추측)가 왜 디버깅을합니까? 던져진 예외가 잡히지 않았습니까? 그렇다면 그것을 잡으려고 시도하는 코드는 무엇입니까?

난 당신이 대신 일한다 생각 코드의 작은, 그러나 완전한 조각 (이상적으로 자체 포함하고 컴파일 가능한) 플러스 무슨 일 A)B)의 정확한 설명을 표시하도록 질문을 변경하시기 바랍니다.

내가 말할 수있는 것은 사용자가 인용 한 오류 메시지가 사용자가보고있는 코드에서 컴파일되지 않은 것을 실행 중이거나 디버깅 중일 수 있다는 것입니다. 그러나 그 질문은 귀하의 질문만큼이나 모호합니다 ...

+0

오해의 소지로 인해 유감입니다. 디버깅 할 때 얻을 수 있습니다. 네, 맞습니다. 디버그없이 실행 해 보았습니다. 괜찮습니다. 왜 다른가요? 내 응용 프로그램을 디버깅하려면 어떻게해야합니까? –

+0

@Roman : 나는 아직도 정확히 무엇을하고 있는지, 어떤 일이 일어나고 있는지, 그리고 어떻게 될지 예상하지 못했습니다. 가서 내 제안에 따라 질문을 편집하십시오. 어쩌면 누군가는 무슨 일이 일어나고 있는지 이해할 것입니다. 그것이 그렇듯이, 나는 당신이 말하는 것에 대해서조차 확신하지 못합니다. – sbi

2

당신이 다시 던지기를하고있는 것처럼 보였고, 당신이 들어간 코드 부분에 대한 소스 코드가 없을 것입니다. IDE가 현재 코드 행에 대한 소스 코드를 찾을 수없는 경우 해당 메시지가 표시됩니다.

+0

같은 다른 개체를 만들지 않지만 이것은 동일한 응용 프로그램입니다. 이것은 DLL이나 모든 종류의 라이브러리가 아닙니다. –

+0

@leiz, 문제는 던졌습니다; –

+0

@Ahmed, 그것이 내가 말한 것입니다. 그는 그가 다시 돌아 오거나 무언가를 밟고 있습니다. – leiz

관련 문제