예외 (Exception) 모음

Delphi 2009. 4. 18. 19:09

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