1. Access Violation - 잘못된 메모리 참조에 대한 이야기지요..
procedure TForm1.Button1Click(Sender: TObject);
var p: ^Byte;
begin
try
var p: ^Byte;
begin
try
p:=0;
p^:=0;
p^:=0;
except on E:Exception do
Memo(E.Message);
end;
end;
Memo(E.Message);
end;
end;
2. Division by Zero - 0 으로 나누는 것에 대한 예외입니다. 컴퓨터가 나눗셈을 어떻게 하는지 아시면 더 와닿으실겁니다.
procedure TForm1.Button2Click(Sender: TObject);
var a, b: Integer;
begin
try
var a, b: Integer;
begin
try
a:=0;
b:=a div a;
if b=0 then Beep;
b:=a div a;
if b=0 then Beep;
except on E:Exception do
Memo(E.Message);
end;
end;
Memo(E.Message);
end;
end;
3. String Conversion Error - 문자열을 다른 형태로 변형하는 과정에서 일어날 수 있는 예외입니다.
procedure TForm1.Button3Click(Sender: TObject);
begin
try
begin
try
WriteLn(StrToDateTime('99/99/2008'));
except on E:Exception do
Memo(E.Message);
end;
end;
Memo(E.Message);
end;
end;
4. 내가 만들어 일으키는 예외 - 말 그대로 예외객체를 생성해서 일으키는 예외입니다. 따로 예외상황을 정의해서 사용하고 싶을 때...
procedure TForm1.Button4Click(Sender: TObject);
begin
try
begin
try
raise Exception.Create('내가 일으킨 예외');
except on E:Exception do
Memo(E.Message);
end;
end;
Memo(E.Message);
end;
end;
5. List Index Out of Bounds - 배열의 없는 값을 참조할 때 일어나는 예외
procedure TForm1.Button5Click(Sender: TObject);
var sList: TStringList;
begin
sList:=TStringList.Create;
try
var sList: TStringList;
begin
sList:=TStringList.Create;
try
try
if sList[0]='개싱키' then Beep;
if sList[0]='개싱키' then Beep;
except on E:Exception do
Memo(E.Message);
end;
Memo(E.Message);
end;
finally
if Assigned(sList) then FreeAndNil(sList);
end;
end;
if Assigned(sList) then FreeAndNil(sList);
end;
end;
'Delphi' 카테고리의 다른 글
[Delphi] 도메인 이름으로 IP주소 가져오기 (0) | 2009.04.18 |
---|---|
[Delphi] THashStringList (대용량 문자열 저장/검색) (0) | 2009.04.18 |
ReportMemoryLeaksOnShutdown:=True 사용시 Indy의 어쩔 수 없는 메모리 누수 출력안하기 (0) | 2009.04.18 |
[Delphi] TStrings.Objects 사용 (0) | 2009.04.18 |
TMemo, TRichEdit 의 가로 길이 (0) | 2009.04.16 |