unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function strtointrange(const s: string; min,max: longint): longint;
begin
if (result < min) or (result > max) then
raise ERangeError.CreateFmt('数值%d不在%d跟%d之间',[result,min,max]);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
try
strtointrange('5',1,10);
except
on e: erangeerror do
messagedlg(e.Message,mterror,[mbok],0);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
try
strtointrange('123',1,10);
except
on e: erangeerror do
messagedlg(e.Message,mterror,[mbok],0);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
a,b: integer;
begin
b := 0;
try
if (b = 0) then
raise ezerodivide.Create('错误!除数不得为0!')
else
a := 10 div b;
showmessage(inttostr(a));
except
on obj1: ezerodivide do
messagedlg(obj1.Message,mterror,[mbok],0);
on obj2: ezerodivide do
messagedlg(obj2.Message,mterror,[mbok],0);
else
messagedlg('无法预知的错误!',mterror,[mbok],0);
end;
end;
end.
