知识大全 异常处理与程序调试(二)[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

相关参考

知识大全 异常处理与程序调试(二)[1]

DELPHI基础教程:异常处理与程序调试(二)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 异常处理与程序调试(二)[4]

DELPHI基础教程:异常处理与程序调试(二)[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 异常处理与程序调试(一)[3]

DELPHI基础教程:异常处理与程序调试(一)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 异常处理与程序调试(三)[3]

DELPHI基础教程:异常处理与程序调试(三)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 异常处理与程序调试(一)[4]

DELPHI基础教程:异常处理与程序调试(一)[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 异常处理与程序调试(一)[2]

DELPHI基础教程:异常处理与程序调试(一)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 异常处理与程序调试(一)[1]

DELPHI基础教程:异常处理与程序调试(一)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 异常处理与程序调试(三)[2]

DELPHI基础教程:异常处理与程序调试(三)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 异常处理与程序调试(三)[1]

DELPHI基础教程:异常处理与程序调试(三)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

SBR调试程序

(一)活性污泥的培养驯化  SBR反应池去除有机物的机理与普通活性污泥法基本相同,主要大量繁殖的微生物群体降解污水中的有机物。  活性污泥处理系统在正式投产之前的首要工作是培养和驯化活性污泥。活性污泥