원하시는 내용은
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;
|