知识大全 异常处理与程序调试(二)[3]
Posted 知
篇首语:一寸光阴一寸金,寸金难买寸光阴。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 异常处理与程序调试(二)[3]相关的知识,希望对你有一定的参考价值。
DELPHI基础教程:异常处理与程序调试(二)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
口令检查是用户在PassWord中输入口令并按下回车键后开始的 实现代码在PassWord的OnKeyPress事件处理过程中
procedure TForm PassWordKeyPress(Sender: TObject; var Key: Char)
const
CurrentPassWord = Delphi ;
begin
if Key = # then
begin
try
if PassWord text <> CurrentPassWord then
raise EInvalidPassWord Create;
Label Visible := True;
InputEdit Visible := True;
InputEdit SetFocus;
PassWord Visible := False;
Label Visible := False;
except
on EInvalidPassWord do
begin
PassWord text := ;
raise;
end;
end;
Key:=# ;
end;
end;
同样 在InputEdit的OnKryPress事件处理过程中实现了输入数字的合法性检查
procedure TForm InputEditKeyPress(Sender: TObject; var Key: Char)
var
Res: Real;
Code: Integer;
begin
if Key = # then
begin
try
val(InputEdit text Res Code)
if Code <> then
raise EInValidInput create( )
if (Res > ) or (Res < ) then
raise EInValidInput create( )
MessageDlg( Correct Input mtInformation [mbOk] )
Key := # ;
except
on E:EInValidInput do
begin
InputEdit text := ;
MessageDlg(E Message mtWarning [mbOk] )
end;
end;
end;
end;
由于异常响应后即被清除 所以要显示异常信息 需要另外的手段 在以上两段程序中我们采用了两种不同的方法 在口令合法性检查中 利用异常重引发由系统进行缺省响应 在输入数字合法性检查中 通过异常实例来获取异常信息并由自己来显示它
以上所举的是一个非常简单的例子 但从中已可以发现 使用自定义异常编程 为程序设计带来了很大的灵活性
利用异常响应编程
利用异常处理机制不仅能使程序更加健壮 而且也提供了一种使程序更加简捷 明了的途径 事实上 使用自定义异常类就是一种利用异常响应编程的方式 这里我们再讨论几个利用标准异常类编程的例子
比如为了防止零作除数 可以在进行除法运算前使用if…then…else语句 但如果有一系列这样的语句则繁琐程度是令人难以忍受的 这时候我们可能倾向于使用EDivByZero异常 例如如下一段程序就远比用if…then…else实现简捷明了
function Calcu(x y z a b c:Integer) Real;
begin
try
Result := x/a+y/b+z/c ;
except
on EDivByZero do
Result := ;
end;
end;
在( )记录文件的打开与创建中就是利用异常响应来实现文件的打开或创建
procedure TRecFileForm OpenButtonClick(Sender: TObject)
begin
if OpenDialog Execute then
FileName := OpenDialog FileName
else
exit;
AssignFile(MethodFile Filename)
try
Reset(MethodFile)
FileOpened := True;
except
on EInOutError do
begin
try
if FileExists(FileName) = False then
begin
ReWrite(MethodFile)
FileOpened := True;
end
else
begin
FileOpened := False;
MessageDlg( 文件不能打开 mtWarning [mbOK] )
end;
except
on EInOutError do
begin
FileOpened := False;
MessageDlg( 文件不能创建 mtWarning [mbOK] )
end;
end;
end;
end;
if FileOpened = False then exit;
Count := FileSize(MethodFile)
if Count > then
ChangeGrid;
RecFileForm Caption := FormCaption+ +FileName;
NewButton Enabled := False;
OpenButton Enabled := False;
CloseButton Enabled := True;
end;
总之 利用异常响应编程的中心思想是虽然存在预防异常发生的确定方法 但却对异常的产生并不进行事前预防 而是进行事后处理 并以此来简化程序的逻辑结构
cha138/Article/program/Delphi/201311/25190相关参考
DELPHI基础教程:异常处理与程序调试(二)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
DELPHI基础教程:异常处理与程序调试(二)[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
DELPHI基础教程:异常处理与程序调试(一)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
DELPHI基础教程:异常处理与程序调试(三)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
DELPHI基础教程:异常处理与程序调试(一)[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
DELPHI基础教程:异常处理与程序调试(一)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
DELPHI基础教程:异常处理与程序调试(一)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
DELPHI基础教程:异常处理与程序调试(三)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
DELPHI基础教程:异常处理与程序调试(三)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
(一)活性污泥的培养驯化 SBR反应池去除有机物的机理与普通活性污泥法基本相同,主要大量繁殖的微生物群体降解污水中的有机物。 活性污泥处理系统在正式投产之前的首要工作是培养和驯化活性污泥。活性污泥