Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Использование Try

Delphi , Синтаксис , Ошибки и Исключения

Использование Try

unit UsTry_;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit1: TEdit; // напряжение
    Edit2: TEdit; // сопротивление
    Label5: TLabel; // результат расчета - ток
    Button1: TButton; // кнопка Вычислить
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
  u: real; // напряжение
  r: real; // сопротивление
  i: real; // ток
begin
  Label5.Caption := '';
  try
      // инструкции, которые могут
      // вызвать исключение (ошибку)
    u := StrToFloat(Edit1.Text);
    r := StrToFloat(Edit2.Text);
    i := u / r;
  except
    on EZeroDivide do // деление на ноль
    begin
      ShowMessage(' Сопротивление не может быть равно нулю!');
      exit;
    end;
    on EConvertError do // невозможно преобразовать строку символов в число
    begin
      ShowMessage('Напряжение и сопротивление должны быть заданы числом.' + #13 +
        'При записи дробного числа используйте запятую.');
      exit;
    end;
  end;
  Label5.caption := FloatToStr(i) + ' А';
end;
end.

Программное приложение на языке Delphi, которое рассчитывает текущий ток (в амперах) на основе ввода напряжения (в вольтах) и сопротивления (в омах). Вычисление производится при клике кнопки "Вычислить".

Код использует блок Try-Except, чтобы обрабатывать потенциальные исключения, которые могут возникнуть во время выполнения кода. Вот разбивка на шаги:

  1. Инициализация: форма инициализируется различными компонентами, включая метки, поля ввода и кнопку.
  2. Событие клика кнопки: при клике кнопки "Вычислить" выполняется процедура Button1Click.

Внутри этой процедуры:

  • Очищается заголовок метки Label5 для подготовки к отображению результата.
  • Пытается конвертировать текст из полей Edit1 (напряжение) и Edit2 (сопротивление) в вещественные числа с помощью StrToFloat. Если любая конвертация неудачна, будет возникнуть исключение.
  • Вычисляет ток, деля напряжение на сопротивление. Если сопротивление равно нулю, возникает ошибка деления на нуль, которая обрабатывается в блоке Except.
  • Если возникло любое исключение (например, неправильный ввод), отображается сообщение об ошибке и процедура завершается с помощью команды Exit.
  • Если не возникло исключений, заголовок метки Label5 устанавливается для отображения рассчитанного значения тока.

Вот некоторые предложения по улучшению кода:

  1. Обработка ошибок: вместо отображения.generic "деление на нуль" сообщения, рассмотрите возможность предоставления более контекстуального или указания пути решения проблемы (например, "Введите значение сопротивления, отличное от нуля").
  2. Валидация ввода: можно использовать блоки Try-Except, чтобы проверять ввод пользователя перед выполнением вычислений. Например, можно проверить, является ли текст в поле пустым или содержит только пробельные символы.
  3. Организация кода: рассмотрите возможность разделения логики расчетов от GUI-отдельного кода. Это упростит поддержку и модификацию приложения.

В целом, это хороший старт для создания простого калькулятора в Delphi.

Представлен пример использования блока try-except в Delphi для обработки исключений, возникших при выполнении инструкций, которые могут вызвать ошибку, такие как деление на ноль или невозможно преобразование строки символов в число.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Ошибки и Исключения ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-26 17:54:44/0.0038070678710938/0