创建 Delphi 7 的错误信息提示

3

您好,我是一名正在学习IT的11年级学生。我正在尝试完成一个实践作业,但遇到了一个问题:我的教科书没有告诉我如何在用户没有输入RichEdit数据时创建错误信息。请问有人能够建议我如何解决这个问题吗?感谢您花时间帮助。


1
例如,在执行验证的事件(通常是“OnExit”事件)中,以以下方式编写代码:if RichEdit1.Text = '' then MessageDlg('该字段不能为空!', mtError, [mbOK], 0) - TLama
谢谢!速度很快...现在正在尝试。 - DNgentle
1
@DNgentle 一个建议是要积极主动,利用你手头的资源,在放下武器之前充分利用它们 :-) 。 - Suraj Singh
1
当你在课堂上问你的教练时,他/她说了什么? - Rob Kennedy
@RobKennedy 确实,讲师可能确切地知道在你的教科书中该看哪里。 - Jerry Dodge
@JerryDodge 我其实是在家自学的,所以我自己在教自己... TLama 的解决方案正是我需要的... 但还是谢谢你们提供的所有技巧。 - DNgentle
1个回答

4

这是如何引发通用异常(使用SysUtils.Exception类)的示例:

raise Exception.Create('Error Message');

未处理的异常会导致执行路径逃逸到Delphi RTL内部的默认异常处理程序中,然后该处理程序将向用户显示Exception.Message的值。

您甚至可以像这样处理自己的异常:

try
  ...
  raise Exception.Create('Error Message');
  ...
except
  on E: Exception do
  begin
    ShowMessage(E.Message);
  end;
end;

然而,在实际操作中您并不需要这样做。抛出异常是为了让调用您方法的代码能够处理错误。

如果您想在其他地方(即调用者处)处理错误,可以抛出异常。

如果只是想显示系统标准错误对话框,可以使用MessageDlg

MessageDlg('Error Message', mtError, [mbOK], 0);

这种情况下窗口的标题只是“错误”。如果您必须设置标题,请使用CreateMessageDialog

with CreateMessageDialog('Error Message', mtError, [mbOK], mbOK) do
begin
  try
    Caption := 'Error Caption';
    ShowModal;
  finally
    Release;
  end;
end;

Exception类在System.SysUtils中。 MessageDlgCreateMessageDialogVcl.Dialogs中。

或者使用TApplication.MessageBox()方法:

Application.MessageBox('Error Message', 'Error Caption', MB_OK or MB_ICONERROR);

或者,如果您使用TApplication.MessageBox()Winapi.MessageBox()而不是MessageDlg(),则可以将标题设置为输入参数。 - Remy Lebeau
另一个需要考虑的事情是创建自己的异常类型,例如 ENoContent,它允许更系统化地捕获某些类型的异常,然后在一个地方以一个消息框的形式进行普遍处理等。 - Jerry Dodge
但在来自Delphi RTL的消息之前,根据Windows的配置方式,未处理的异常首先会进入“Windows正在寻找问题的解决方案”。 - david

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接