
오늘은 PYRASIS.COM(피라시스닷컴)이 문을 연지 4년째 되는 날입니다.
2, 3주년은 제가 계급을 달고 있던 시절이라 따로 챙기지 못하였습니다.
예나 지금이나 사이트의 겉모습은 거의 바뀐 것이 없지만 테터툴즈의 설치, WebSVN에서 ViewVC로 전환 등 기능적으로는 어느정도 발전이 있었습니다.
자주 글을 쓰지는 못하지만, 양질의 정보를 제공하기 위해 노력하겠습니다.
앞으로도 많은 방문 바랍니다. 감사합니다.


void tryexcept()
{
__try
{
int *world = NULL;
*world = 8; // 널 포인터에 값 대입
printf("hello try %d\n", *world);
}
__except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH)
{
printf("EXCEPTION_ACCESS_VIOLATION\n");
}
} 이 매크로들은 excpt.h에 정의되어 있습니다.
__except의 괄호 안에 모든 예외의 종류를 다 적어줄 순 없는 노릇입니다. 그래서 예외 코드를 판별하여 각각 처리해주는 함수를 만들어 사용할 수 있습니다. 여기서 예외의 원인을 수정하여 EXCEPTION_CONTINUE_EXECUTION를 리턴하면 코드를 계속 실행 할 수 있습니다.
int Value = 0;
DWORD ExceptionFilter(DWORD ExceptionCode)
{
switch (ExceptionCode)
{
case EXCEPTION_INT_DIVIDE_BY_ZERO:
{
// 예외가 발생한 원인을 수정
Value = 1;
return EXCEPTION_CONTINUE_EXECUTION;
}
case EXCEPTION_ACCESS_VIOLATION:
{
// 예외가 발생한 원인을 수정
return EXCEPTION_CONTINUE_EXECUTION;
}
// 다른 여러가지 예외 코드를 처리
//case EXCEPTION_XXX
default:
return EXCEPTION_EXECUTE_HANDLER;
}
}
void tryexceptfilter()
{
__try
{
int world = 10;
world = world / Value;
}
__except (ExceptionFilter(GetExceptionCode()))
{
printf("EXCEPTION !\n");
}
} void tryfinally()
{
__try
{
printf("hello try\n");
}
__finally
{
printf("hello finally\n");
}
} 
댓글을 달아 주세요
추카해요...
각박한 세상에 4년동안 변함없이 사이트를 유지하기가 쉬운일이 아니죠.
앞으로도 좋은 정보 많이 부탁해요 *^^*
축하드립니다.
네. 감사합니다.
호^^ 축하드려요~
좋은 강좌 항상 잘 보고 있어요~^^
안녕하세요.
진심으로 축하드려요.
Subversion 설치법과 svnmanger을 유용하게 사용하고 있습니다.
Solaris 에서 서브버전 설치하기 위해서 그 수많은 뻘짓을 pyrasis님의 블로그를
통해 많은 도움을 받았습니다.
현재 Solaris, Windows2003 에서 서브버전을 설치하여 현재까지 잘 사용하고 있습니다.
업무에서 팀원들이 모두 사용하는건 아니지만 제 개인적으로 개발한 소스를
차곡 차곡 쌓고 있답니다.
항상 건승하시고 좋은 일만 가득하세요.
다시 한번 축하드립니다.
감사합니다.
도움되셨다니 다행입니다.
이번에 회사일로 아파치와 서브버전 그리고 ViewVC를 함께 설치하게 되었는데,
너무 큰 도움이 되었습니다. 감사합니다.
네.. 앞으로도 많은 방문 바랍니다.