승진이의 세상 살아가는 이야기  
Front Page
Tag | Location | Media | Guestbook | Admin   
 
출력용 포인터를 쓸 때에 예외 처리 방법!

SEH를 사용한 코드

  1. void some_func5(DWORD *some_ptr)  
  2. {  
  3.     __try 
  4.     {  
  5.         *some_ptr = 0x12345678;  
  6.     }  
  7.     __except(EXCEPTION_EXECUTE_HANDLER)  
  8.     {  
  9.         SetLastError(ERROR_INVALID_ACCESS);  
  10.     }      
  11. }  


<리스트 4>와 동일한 코드를 SEH로 작성한 것이 <리스트 5>의 코드다. 간단한 코드이기 때문에 코드만으로는 예외처리의 장점을 알기가 쉽지 않다. 단지 명확한 한 가지 단점은 복잡한 조건을 미리 생각하지 않아도 된다는 점이다. __try, __except 블록으로 인해 너무 복잡해 보인다거나, 예외처리 때문에 늦어진다고 불평을 할 수 있다. 하지만 이는 예외 처리에 대한 메커니즘을 정확하게 이해하지 못해서 발생하는 오류다. 우선 __try, __except 블록에 대해서 살펴보자. 분명히 <리스트 4>에는 그러한 것이 없다. 하지만 진짜 없는 것은 아니다. IsBadWritePtr이란 함수 속에 그 블록이 숨겨져 있을 뿐이다. 그렇다면 성능은 어떨까? <리스트 4>의 코드는 오류가 있건 없건 항상 IsBadWritePtr을 호출한다. 반면에 <리스트 5>의 코드는 그런 사전 검사에 드는 비용이 없다. 예외가 발생했을 때만 예외처리 코드가 수행된다. 따라서 <리스트 5>의 코드가 더 효율적이다.

SEH 사용법
http://serious-code.net/moin.cgi/SEH

A Crash Course on the Depths of Win32™ Structured Exception Handling
http://www.microsoft.com/msj/0197/exception/exception.aspx


위의 글은 제가 필요한 부분만 꺼내온 것이고 자세한 설명은 트랙백 주소의 블로그로 가보면 자세한 설명이 되어있습니다. ^^
예외처리를 할 때에 저와 같은 초보 프로그래머들은 assert나 null만 짚고 넘어가는 경우가 많습니다.
그렇지만 다른 버그를 잡을 수 없지요 .
관련 글을 보면 예외처리에 대해 상세히 잘 설명되어 있습니다. ^^
영진님의 노하우가 팍팍 느껴지는군요..
항상 좋은 글에 감사할 따름입니다. ^^
아.. 최근에 감기에 걸려서 죽겄네요 ㅠ
빨리 나았으면 좋겠습니다.
다른 분들도 감기 조심하시기를...

관련 글입니다. http://www.jiniya.net/tt/655

Tag :


BLOG main image
항상 0에서 시작한다는 자세를 갖고 앞으로 나에게 가장 유리한 것이 무엇인지를 찾아라.
 Notice
 Category
분류 전체보기 (228)
승진이 이야기 (29)
승진이 공부중 (16)
승진이 자료실 (1)
승진이와 Android (1)
승진이와 Java (49)
승진이와 DB (10)
승진이와 영어 (3)
승진이와 책 (8)
승진이와 C (6)
승진이와 Web (15)
승진이와 정보 (68)
승진이와 XML (3)
승진이와 Q&A (2)
승진이의 Logs (0)
승진이와 사진 (1)
승진이와 Android (0)
승진이와 자동차 (4)
승진이와 이클립스 RCP (6)
승진이와 프로젝트들 (0)
승진이와 JavaScript (2)
승진이와 쉘프로그래밍 (0)
Flex (0)
 TAGS
얼린 문 열기 에러 넷빈즈 펀드 문자열 pk fk 조회 스윙 쉘스크립트 디렉토리 변경 java 디렉토리명 C언어 surge 객체 참조 자격증 java.lang.NoClassDefFoundError 신협중앙회 리눅스 쓰레드 install.xml 오라클 크로스 브라우저 문자열 검색 informix c Preference Android 새창으로 열기 수식 SDK Setup.exe FTP업로드 뒤로가기 버튼 리눅스 팁 엑셀 검색 IzPack LPIC 자바 특수 문자
 Calendar
«   2019/04   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
 Recent Entries
ORA-32039: 순환 WITH 절에는 열 별칭 목록..
rexpert 오라클 접속 설정 방법
간단한 코드 테이블 설계
String padding 자바스크립트
jquery selector 셀렉터 표현식으로 찾기
이광영 부장판사 솜방망이 처벌 관련 링크들
sql 디벨로퍼 각주 제거 생성 단축키
jquery 이용하여 프린트 1
테이블 자동 줄바꿈 처리 방법
문자 찍는 함수 CHR() 함수와 ASCII()함수
 Recent Comments
5년이란 시간동안 my..
은성훈 - 2014
한국새끼들이 이래서..
qweqwe - 2014
mysql도 rollup기능..
ㄴㄴㄴ - 2014
감사합니다
고마워요 - 2012
헐.. 정말인가요? 사..
BreathAir - 2011
저는 이제서야 관련..
originkim - 2011
아주 막장 그자체라..
기술자 - 2010
request의 parameter..
님 짱!! - 2010
제가 목격한 건데요...
^^ - 2010
네 도대체 왜 그렇게..
BreathAir - 2010
 Recent Trackbacks
スタッドレスタイヤ..
スタッドレスタイヤ..
野球ス ミズノ
野球ス ミズノ
ve may bay
ve may bay
visit this web page..
visit this web page..
timeshare vacation..
timeshare vacation..
joogle.in
joogle.in
arassegaf.com
arassegaf.com
new Software techno..
new Software techno..
www.douloschurch.com
www.douloschurch.com
fix DBF file
fix DBF file
 Archive
2013/12
2013/11
2013/04
2013/03
2012/09
 Link Site
내 마음속 폭풍은 아직 아..
괴짜 프로그래머의 일상사~..
Joel on Software
Android 개발자 커뮤니티 ,..
developer.com
Jace\'s Blog
오라클 10g Documentation
Programing Note (승만이)
실용주의를 꿈꾸며(이클립..
http://pragmatic.kr
자바 누리 기술 문서 / 매..
Reflect
Java API 6.0 한글번역
eclipse resources 문서 링..
자바 관련 소스 많은 곳
미디어 파일 (무제한 웹하드)
http://younghoe.info/
Open Knowledge Share Drea..
키스포토 (사진강좌와 사진..
외국 드라마 TV show 자막..
무료 ebooks
지금샵
 Visitor Statistics
Total : 256,287
Today : 2
Yesterday : 23
rss