C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[1685] Re:[Q] Exception에 대해..
박지훈.임프 [cbuilder] 3581 읽음    1999-07-29 00:00
: VCL Library Function들이 Exception을 일으키는지에 대한
: 리퍼런스 같은 것이 있습니까?
:
: 예를 들어,
:
:    try {
:       i = FileOpen("null.dat");   // <-- 존재하지 않는 파일
:    }
:    catch(...) {
:       Application->MessageBox("주절주절", "", MB_OK);
:    }
:
: 위 코드에서 존재하지 않는 파일을 오픈하는 경우에도
: catch 블럭이 실행되지 않더군요..
: FileRead(), FileSeek()를 계속해서 쓴 경우도 마찬가지..
:
: 그렇다면 i값이 -1인 경우에 강제로 throw를 해주어야 한다는
: 소리같은데... 어떤 함수나 연산이 Exception을 일으키는지
: 아닌지에 대해 먼저 알아야 할 것 같거든요..
:
: 사실... Exception에 대해 아직 잘 몰라서 제가 잘못 알고 있을
: 수도 있겠습니다. 잘만 쓰면 아주 깔끔한 코드가 나올것 같은데
: 좀 어렵긴 하네요..
:
: 참고로 C++Builder 4.0 엔터프라이즈이구요... 위 코드는
: 헬프에 있는 예제 코드를 참조한 겁니다.
: (예제 코드를 그대로 싱행시켜도 Exception이 안생겼음..)


임펠리테리입니다.

말씀하신대로, FileOpen() 함수는 읽으려는 파일이 없어도 익셉션을 발생하지 않습니다.
FileOpen() 대신 TFileStream 클래스를 써보시기 바랍니다. 클래스로 구현된 것외엔
FileOpen을 사용하는 것과 거의 사용법이 동일하고, 읽으려는 파일이 없을 경우
익셉션을 발생시킵니다.

제가 알기로는, 익셉션을 발생시키는 함수를 찾아볼 수 있는 레퍼런스와 같은
것은 없습니다. 하지만 특정 함수가 항상 익셉션을 발생시키는 경우에는 항상
익셉션을 일으킨다고 헬프에 언급되어 있죠.

그럼 참고하시길..

+ -

관련 글 리스트
1680 [Q] Exception에 대해.. 이형종 3216 1999/07/29
1685     Re:[Q] Exception에 대해.. 박지훈.임프 3581 1999/07/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.