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

델파이 Q&A
Delphi Programming Q&A
[13751] Re:raise 에 대한 질문입니다
gomsun2 [vhrvnd723] 1719 읽음    2011-07-05 09:40
원하시는 내용은
try ~ except 로 묶어 사용하시면 됩니다.
반면 발생한 예외는 외부(작성한 클래스 밖으로)에 알려지지 않습니다.

try
...
(1)
...
except
  begin
  ...
  (2)
  ...
  end;
end;

하지만
:   if i < size then                 
:   begin     
:     e:=Exception.Create('too small');       
:     raise e;
:   end;
구문에서
Exception을 생성하시기 전에 필요한 작업을 수행한 후 Exception.Create 하시면 좋을것 같습니다.
발생한 예외는 외부에 알릴 수가 있고, 필요한 작업을 수행하실수 있기 때문입니다.
:   if i < size then                 
:   begin     
    // 여기서 필요한 작업 수행
:     e:=Exception.Create('too small');       
:     raise e;
:   end;


(1)번구간에서 예외가 발생하면 (2)번 구간이 수행됩니다.

김질문 님이 쓰신 글 :
: 조건에 안맞으면 강제로 예외를 발생시키려고 raise를 걸어놨습니다.
: 예외가 발생하고 나면 i:=100 이 실행이 되지 않고 빠져 나가버립니다.
: 빠져나가는게 정상적인 순서겠지만..
:
: 혹시 예외는 예외대로 발생시키고 그 뒤로있는 라인들로 진행할 방법은 없는지 해서 질문을 올립니다.
:
:
:
: constructor T클래스.Create(i:integer,size:integer)
: var
:   e:Exception;
: begin
:   if i < size then                 
:   begin     
:     e:=Exception.Create('too small');       
:     raise e;
:   end;
:
:   i:=100;
:   기타등등
:   장문의 코드들.
:   주절주절
:
: end;

+ -

관련 글 리스트
13748 raise 에 대한 질문입니다 김질문 1843 2011/07/01
13751     Re:raise 에 대한 질문입니다 gomsun2 1719 2011/07/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.