Когда дело доходит до расчета математических выражений, у разных людей есть свои разные подходы. Некоторые используют метод анализа выражений. Если в выражении есть ошибка, диалоговое окно также может появиться, чтобы указать соответствующую ошибку. Эта программа использует стандартные операторы SQL, которые поддерживают многие операции, такие как: добавление, вычитание, умножение, разделение и разделение; Есть также строковые операции, но это не имеет смысла. Поскольку эта программа согласуется с вышеупомянутой целью, нет никаких ограничений на них, заинтересованные друзья могут заранее проверить синтаксис выражения и затем передать ее этой программе для расчета.
{
Все права защищены.
Проект: расчет математических выражений
Автор: Huang Tao [email protected]
Цель: Узнайте, как использовать классы исключений
}
единица ucalcexpr;
интерфейс
Использование
Windows, сообщения, Sysutils, варианты, классы, графика, управления, формы,
Dialogs, STDCTRLS, DB, ADODB;
тип
Tfrmcalc = class (tform)
Баттон1: Tbutton;
РЕДАКТИРОВАТЬ1: ТЕДИТ;
процедура Button1click (отправитель: tobject);
процедура edit1keypress (отправитель: tobject; var key: char);
Частный
{Частные объявления}
публичный
{Публичные объявления}
конец;
Функция Calcexpr (expr: String): String;
вар
frmcalc: tfrmcalc;
Выполнение
{$ R *.dfm}
// Это ядро этой программы, и она зависит от нее для расчета выражений.
function calcexpr (expr: string): string;
var Query: tadodataset;
Начинать
qury: = tadodataset.create (nil);
пытаться
Qury.connectionString: = 'Provider = msdasql.1; Информация о безопасности = false;' +
'Data Source = DBASE файлы';
qury.commandtext: = 'select' + expr + 'как результат';
Qury.open;
Результат: = expr + '=' + qury.fieldbyName ('result'). Appring;
Окончательно
Query.free;
конец;
конец;
Процедура tfrmcalc.button1click (отправитель: tobject);
Начинать
пытаться
edit1.text: = calcexpr (edit1.text);
кроме
На H: Исключение начинается
ShowMessage (H.Message);
конец;
конец;
конец;
Процедура tfrmcalc.edit1keypress (отправитель: tobject; var key: char);
Начинать
Если key = #13, то Button1click (self);
конец;
конец.
Резюме: Из этого мы видим, что есть два метода для ловли исключений. Эти два метода улавливания исключений различны, и каждый из них имеет свое использование.
Попробуйте ... За исключением того, что END обычно используется, когда нам нужно поймать ошибку и сделать соответствующие подсказки после того, как вызовет определенный метод. Например, при вызове функции, которая вычисляет выражение в вышеуказанной программе, функция, которая вычисляет выражение, может привести к исключению, поэтому при вызове она должна поймать свое исключение, выполнить соответствующие подсказки или выполнить связанную последующую обработку, чтобы избежать Это вызывает системные ошибки и влияет на красоту интерфейса программы. Если мы просто сообщим об ошибке, мы можем просто написать соответствующую подсказку для сообщения о ошибке в середине, кроме ... конец. Если вы хотите увидеть, какой вид ошибки, вы должны следовать вышеуказанной практике, чтобы поймать ошибку.
Попробуйте ... наконец -то ... обычно используется для выполнения соответствующих операций после выделения определенного ресурса. С помощью попытки ... Наконец -то ... конечный оператор мы можем полностью разместить операцию в попытке ... Наконец, после выделения ресурсов и представьте, что это может быть выполнено полностью гладко. Из этого круга и введите, наконец, не выполняя его последовательно. Наконец -то ... конец, мы можем выполнить некоторую работу последствий, такую как выпуск ресурсов, выделенных в то время, потому что независимо от того, выполняется ли вышеупомянутое гладкое или при соблюдении исключений, утверждения здесь будут выполнены.
Видно, что приведенное выше оператор устанавливается для ловли исключений, и следующее утверждение установлено для распределения ресурсов, но некоторые друзья говорят, что мы должны делать, если мы хотим поймать исключения и восстановить ресурсы? К сожалению, Борланд не пытается ... кроме ... наконец ... конец.
Короче говоря, рациональное использование классов исключений может значительно сократить наши программы и сделать идеи нашей программы более ясными. Письменная программа красивее.