/EHc extern "C" defaults to nothrow
/EHs enable synchronous C++ EH
/EHa enable asynchronous C++ EH
여러 옵션 중 다음과 같은 옵션이 있습니다.
/EHc 는 nothrow 라는 말이 무슨 말인지 모르기 때문에 이해가 안 됩니다.
얼핏 디폴트로 C를 불른다는 것 같습니다. 예외 적용을 안 한다는
건가?
/EHs와 /EHa 는 동기, 비동기 C++를 사용한다는 것 같은데
EH라는 말이 있어서 무슨 말인지 이해가 안 됩니다.
급한 마음에(마음만) 모 사이트에 지식을 빌렸지만 아직 답변을 받지 못했습니다.
그래서 cl.exe가 MS 꺼니 여기서 질문을 해 봅니다.
MS 사이트에서 찾자니 영문이 워낙 많아서 쉽게 찾지를 못하는 바람에
여기서 질문을 해 봅니다. 책을 찾자니 요즘 돈이 없어서리 ㅋㅋ
--------------------------------------------
한 늙은 백수가 직장을 구하기 위해 공부를 하면서
http://msdn2.microsoft.com/ko-kr/library/1deeycx5(VS.80).aspx
a
비동기(구조적) 예외 및 동기(C++) 예외를 catch하는 예외 처리 모델입니다.
s
C++ 예외만 catch하고 컴파일러가 extern C 함수에서 예외를 throw하는 것으로 가정하도록 하는 예외 처리
모델입니다.
c
s와 함께 사용하면(/EHsc) C++ 예외만 catch되며 컴파일러는 extern C 함수에서 C++ 예외를 throw
하지 않는 것으로 가정합니다. /EHca는 /EHa와 동일합니다.
이렇게 되어 있네요.
우와~ 정말 감사합니다.
아직 구체적인 파악은 하지 못했지만 대충은 이해가 갈 꺼 같습니다.
제가 아직 예외에 대한 많은 공부를 하지 못해서요.
예외에 대한 것은 자바 밖에 공부를 하지 않아서입니다.
자료 찾아 주셔서 정말 감사합니다.
MSDN이 한글화가 무지 잘 되어 있네요. 머나면 옛날 영문 밖에 못봐서 무척
애먹었는데
링크를 보니 제가 공부를 워낙 안 했구나 하는 생각이 드네요.
그런데 nothrow는 MS가 만든? 어디서 만들어졌는지는 모르지만 신조어 같습니다.
추측하건데
예외를 throw 라 표현하는가 보군요. 그래서 예외를 잡지 않는 걸 nothrow라
하는 것 같은데?
제 생각이 맞는지 궁금합니다.
TheOne 님 감사합니다.
========================
theOne? 혹 담배? ㅋㅋ
Windows 시스템에서 C++로 프로그램을 작성하면 두 가지 예외처리 매커니즘을
사용할 수 있습니다. C++ 예외와 구조적 예외 처리(SEH)가 그것입니다. 이 경우에
/EHa 옵션을 사용하면 catch(...)에 C++예외와 SEH가 모두 잡힙니다. 반면에 다른
옵션에서는 C++ 예외만 잡힙니다.
"PG" <pic...@yahoo.co.kr> wrote in message
news:Ottuc3aX...@TK2MSFTNGP03.phx.gbl...
좀 더 자세한 설명 감사합니다.
추가 설명을 들으니 C++에서 예외를 아직 다루지는 못해도
대략 컴파일 옵션에 따라 이렇게 흐르는구나 하는 정도는 파악했습니다.