예외와 관련된 문제가 발생했습니다. 코드는 다음과 같습니다catch (...)가 모든 예외를 catch하지 않음
,
try
{
auto it = set_difference(allInterfaces.begin(), allInterfaces.end(), eths.begin(),
eths.end(), newCards.begin());
}
catch(...)
{
cout << "exception thrown << endl;
}
나는 예외가 있지만, 프로그램 종료와 예외를 catch하지 않는 catch 블록을 던지고있다() set_difference을 알고있다. 예외를 잡을 수있는 방법이 있습니까? 나는 모든 것이 항상 효과가 있어야한다고 생각했다.
도움 주셔서 감사합니다.
'set_difference'가 던지는 예외는 무엇입니까? – Praetorian
일부 예외는 * 예외라고하지만 C++ 예외가 아닌 시스템 (또는 프로세서) 예외임을 기억하십시오. 'catch' 블록은'throw'의 C++ 예외만을 잡아줍니다. 다른 종류의 예외 (예 : 널 포인터 접근으로 이어질 수도 있음)가 아닙니다. –
벡터 newCards가 너무 작 으면 프로그램이 종료되었습니다. 이 오류가 있습니다 : *** glibc 감지 ***/네트워킹 : free() : 잘못된 포인터 : 0x000000000153d4a8 ***. 어쩌면 이것은 예외는 아닙니다. – Smithy