Cuando se trata de calcular expresiones matemáticas, diferentes personas tienen sus propios enfoques diferentes. Algunos usan el método para analizar las expresiones. Si hay un error en la expresión, un cuadro de diálogo también puede aparecer para indicar el error correspondiente. Este programa utiliza declaraciones SQL estándar, que admiten muchas operaciones, como: suma, resta, multiplicación, división y división; También hay operaciones de cadena, pero eso no tiene sentido. Dado que este programa está de acuerdo con el propósito mencionado anteriormente, no hay restricciones en estos, los amigos interesados pueden verificar la sintaxis de la expresión por adelantado y luego entregarla a este programa para su cálculo.
{
Todos los derechos reservados.
Proyecto: Cálculo de expresiones matemáticas
Autor: Huang tao [email protected]
Propósito: Aprenda a usar clases de excepción
}
Unidad UCalCEXPR;
interfaz
usos
Windows, mensajes, sysutils, variantes, clases, gráficos, controles, formularios,
Diálogo, stdctrls, db, ADODB;
tipo
TFRMCALC = CLASS (TFORM)
Botón 1: tbutton;
Edit1: tedit;
procedimiento botón1Click (remitente: tobject);
procedimiento edit1KeyPress (remitente: tobject; var key: char);
Privado
{Declaraciones privadas}
público
{Declaraciones públicas}
fin;
función calCEXPR (expr: string): string; // función que calcula expresiones matemáticas, donde expr es una expresión
varilla
frmcalc: tfrmcalc;
Implementación
{$ R *.dfm}
// Este es el núcleo de este programa, y depende de él calcular las expresiones.
función calCEXPR (expr: string): string;
consulta var: tadodataSet;
Comenzar
Qury: = tadoDataSet.create (nil);
intentar
Qury.ConnectionString: = 'Provider = MSDASQL.1; Persist Security Info = False;'
'Fuente de datos = archivos dbase';
qury.commandText: = 'select' + expr + 'como resultado';
QURY.Apen;
Resultado: = expr + '=' + qury.fieldbyname ('resultado'). astring;
Finalmente
consulta.
fin;
fin;
procedimiento TFRMCALC.BUTTON1Click (remitente: tobject);
Comenzar
intentar
edit1.text: = calCEXPR (edit1.Text);
excepto
En H: Excepción Do Comen
showmessage (h.message);
fin;
fin;
fin;
procedimiento tFrmcalc.Edit1KeyPress (remitente: tobject; var key: char);
Comenzar
if key = #13 luego botón1Click (self);
fin;
fin.
Resumen: a partir de esto podemos ver que hay dos métodos para atrapar excepciones. Estos dos métodos de captura de excepciones son diferentes, y cada uno tiene sus propios usos.
Intente ... excepto ... El final generalmente se usa cuando necesitamos atrapar el error y hacer las indicaciones correspondientes después de que se llame a un determinado método. Por ejemplo, al llamar a una función que calcula una expresión en el programa anterior, la función que calcula una expresión es probable que arroje una excepción, por lo que al llamar, debe captar su excepción, hacer las indicaciones correspondientes o realizar un procesamiento posterior relacionado para evitar Causa errores del sistema y afecta la belleza de la interfaz del programa. Si simplemente informamos un error, simplemente podemos escribir el mensaje correspondiente para informar un error en el medio de excepto ... final. Si desea ver qué tipo de error es, debe seguir la práctica anterior para detectar el error.
Intente ... Finalmente ... End se usa generalmente para realizar operaciones relacionadas después de asignar un cierto recurso. Con el intento ... Finalmente ... End Declare, podemos colocar la declaración de operación por completo en Try ... Finalmente después de asignar recursos, e imagine que esto se puede ejecutar sin problemas. fuera de este círculo y ingrese finalmente sin realizarlo en secuencia. Finalmente ... final, podemos llevar a cabo algunos trabajos de consecuencia, como liberar los recursos asignados en ese momento, porque no importa si lo anterior se ejecuta sin problemas o al encontrar excepciones, las declaraciones aquí se ejecutarán.
Se puede ver que la declaración anterior está establecida para capturar excepciones, y la siguiente declaración está establecida para la asignación de recursos, pero algunos amigos dicen: ¿Qué debemos hacer si queremos capturar excepciones y recuperar recursos? Desafortunadamente, Borland no tiene intento ... excepto ... finalmente ... termina.
En resumen, el uso racional de clases de excepción puede reducir en gran medida nuestra programación y aclarar nuestras ideas de programa. El programa escrito es más hermoso.