|  | 
|      | 
|   | 
| Инициализация исключительной ситуацииDelphi , Синтаксис , Ошибки и ИсключенияАвтор: Xavier Pacheco 
{
Copyright © 1999 by Delphi 5 Developer's Guide - Xavier Pacheco and Steve Teixeira
}
unit MainFrm;
interface
uses
  SysUtils, Windows, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, AppEvnts, Buttons;
type
  ENotSoBadError = class(Exception);
  EBadError = class(Exception);
  ERealBadError = class(Exception);
  TMainForm = class(TForm)
    btnNotSoBad: TButton;
    btnBad: TButton;
    btnRealBad: TButton;
    appevnMain: TApplicationEvents;
    procedure btnNotSoBadClick(Sender: TObject);
    procedure btnBadClick(Sender: TObject);
    procedure btnRealBadClick(Sender: TObject);
    procedure appevnMainException(Sender: TObject; E: Exception);
  public
  end;
var
  MainForm: TMainForm;
implementation
{$R *.DFM}
procedure TMainForm.btnNotSoBadClick(Sender: TObject);
begin
  raise ENotSoBadError.Create('This isn''t so bad!');
end;
procedure TMainForm.btnBadClick(Sender: TObject);
begin
  raise EBadError.Create('This is bad!');
end;
procedure TMainForm.btnRealBadClick(Sender: TObject);
begin
  raise ERealBadError.Create('This is real bad!');
end;
procedure TMainForm.appevnMainException(Sender: TObject; E: Exception);
var
  rslt: Boolean;
begin
  if E is EBadError then
  begin
    { Show a custom message box and prompt for application termination. }
    rslt := MessageDlg(Format('%s %s %s %s %s', ['An', E.ClassName,
      'exception has occurred.', E.Message, 'Quit App?']),
        mtError, [mbYes, mbNo], 0) = mrYes;
    if rslt then
      Application.Terminate;
  end
  else if E is ERealBadError then
  begin // Show a custom message
    // and terminate the application.
    MessageDlg(Format('%s %s %s %s %s', ['An', E.ClassName,
      'exception has occured.', E.Message, 'Quitting Application']),
        mtError, [mbOK], 0);
    Application.Terminate;
  end
  else // Perform default exception handling
    Application.ShowException(E);
end;
end.Программа на Delphi, демонстрирующая создание и обработку пользовательских исключений в приложении Windows. Вот разбивка кода: Классы исключений
Программа определяет три пользовательских класса исключений:  Форма и кнопки
Программа создает форму ( Обработка исключений
Когда происходит исключение, программа использует процедуру обработчика события  
 Предложения по улучшению кода
Вот несколько предложений для улучшения кода:
1. Используйте более описательные имена переменных: вместо использования однобуквенных переменных, таких как  В целом, код хорошо структурирован и легко понятен. Однако есть некоторые области, где можно улучшить код для лучшей поддерживаемости и масштабируемости. В статье 'Инициализация исключительной ситуации' автор Xavier Pacheco описывает способ инициализации исключительных ситуаций в приложении Delphi, создавая классы исключений и обрабатывая их в коде формы. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш  :: Главная :: Ошибки и Исключения :: 
 | ||||
|  ©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||