Red de conocimiento informático - Material del sitio web - Investigación sobre tecnología de manejo de excepciones basada en DelphiDurante la ejecución de un programa, a menudo ocurren algunos estados de error inesperados, lo que hace que el programa no se ejecute. Por lo tanto, al implementar funciones del programa, se debe considerar cómo manejar diversas situaciones anormales que pueden ocurrir durante la ejecución del programa. La llamada excepción se refiere a un estado anormal o inesperado que interrumpe el flujo normal del programa. Al abrir el archivo, no se puede encontrar el archivo según la ruta y no se puede asignar la memoria requerida. Y discutió el método de implementación del manejo de excepciones. El origen de las excepciones puede ser generado por varios recursos diferentes. Los programas de usuario pueden generar excepciones debido a condiciones anormales. Los componentes de Delphi pueden generar excepciones debido a diferentes eventos, asignando valores fuera de límites a propiedades o intentando indexar elementos de matriz inexistentes. Los procedimientos y funciones de la biblioteca también pueden generar excepciones al realizar expresiones matemáticas con operaciones ilegales. Si se divide por 0, definitivamente se generará una excepción. Ejemplos de operaciones inusuales incluyen expresiones que hacen referencia a un puntero cero para realizar una conversión de tipo ilegal. En términos generales, las situaciones que encuentra el software durante la operación varían ampliamente, por lo que las situaciones que causan excepciones también son diferentes. El método tradicional de manejo de excepciones se controla principalmente mediante el indicador booleano de la declaración IF y el valor de retorno de la función especial, como el uso de declaraciones condicionales para manejar excepciones durante la ejecución del programa. Puede ocurrir un error al abrir un archivo vacío. Si abre el cuadro de diálogo Nombre de archivo = nil, entonces ///Determine si desea seleccionar el archivo. Inicie ShowMessage (si el archivo seleccionado no es válido, vuelva a seleccionarlo). Fin El ejemplo anterior utiliza la declaración IF para determinar el evento anormal y luego solicita una reoperación. Este método de manejo de excepciones es ciertamente fácil de entender, pero si se usan declaraciones IF en todas partes para verificar errores y manejar excepciones durante la escritura del software, el trabajo de programación se volverá más complicado. En Delphi, este problema se puede solucionar de una forma más sencilla. Object Pascal admite múltiples mecanismos de manejo de excepciones y proporciona mecanismos avanzados de manejo de excepciones. Aquí se analizan dos métodos de manejo de excepciones para crear bloques de declaraciones protegidos. El llamado bloque de declaraciones protegidas son una o más declaraciones, y el procesador generará excepciones para estas declaraciones. Las palabras clave try y except se utilizan para crear bloques de declaraciones protegidos. La estructura específica es la siguiente: try //Segmentos de código que pueden causar excepciones...excepto //Segmentos de código usados ​​para manejar excepciones...END donde try y except son palabras clave, y try se usa para marcar segmentos de código que pueden generar excepciones. Si el programa genera una excepción durante la ejecución, el sistema pausará la ejecución del segmento de código de prueba y continuará la ejecución de acuerdo con el segmento de código establecido por la excepción. A continuación se muestra un ejemplo de cómo utilizar esta estructura para crear un bloque de declaración protegido. El código principal para llamar específicamente al proceso de procesamiento de eventos es el siguiente: v. Ar I j k integer begin I = j = try k = j div I// Declaraciones que generan excepciones distintas de ShowMessage (¡Error de Divede! I = IntToStr(I) J IntToStr( J) K = IntToStr(K))End En este proceso, la expresión JdivI intenta hacer que el objeto Pascal runtime genere una excepción a través de la división, ejecutando así la declaración ShowMessage en el bloque de excepción. El proceso de ejecución de este programa de control de declaraciones de protección tiene principalmente los siguientes tres puntos (). Si la declaración en el bloque de excepción maneja el procedimiento o función de excepción, continuará ejecutándose normalmente después del bloque de guardia () Si no hay ninguna declaración que maneje la excepción, el procedimiento o función actual saldrá inmediatamente de la cadena de llamada de búsqueda de excepción hasta se encuentra un controlador adecuado () . Las excepciones no controladas finalmente llegan al controlador de excepciones predeterminado de la aplicación. El controlador de excepciones predeterminado muestra un cuadro de diálogo y un mensaje. El controlador de excepciones predeterminado recibe todas las excepciones no controladas. Muestra ejemplos de creación de bloques de recursos protegidos y superiores. Mostrar mensajes de error es sólo un aspecto del manejo de excepciones. Las aplicaciones confiables deben restaurar la estabilidad cuando ocurren excepciones. Si se produce un error de disco, la aplicación debe liberar memoria que no podrá utilizarse hasta que el usuario reinicie.

Investigación sobre tecnología de manejo de excepciones basada en DelphiDurante la ejecución de un programa, a menudo ocurren algunos estados de error inesperados, lo que hace que el programa no se ejecute. Por lo tanto, al implementar funciones del programa, se debe considerar cómo manejar diversas situaciones anormales que pueden ocurrir durante la ejecución del programa. La llamada excepción se refiere a un estado anormal o inesperado que interrumpe el flujo normal del programa. Al abrir el archivo, no se puede encontrar el archivo según la ruta y no se puede asignar la memoria requerida. Y discutió el método de implementación del manejo de excepciones. El origen de las excepciones puede ser generado por varios recursos diferentes. Los programas de usuario pueden generar excepciones debido a condiciones anormales. Los componentes de Delphi pueden generar excepciones debido a diferentes eventos, asignando valores fuera de límites a propiedades o intentando indexar elementos de matriz inexistentes. Los procedimientos y funciones de la biblioteca también pueden generar excepciones al realizar expresiones matemáticas con operaciones ilegales. Si se divide por 0, definitivamente se generará una excepción. Ejemplos de operaciones inusuales incluyen expresiones que hacen referencia a un puntero cero para realizar una conversión de tipo ilegal. En términos generales, las situaciones que encuentra el software durante la operación varían ampliamente, por lo que las situaciones que causan excepciones también son diferentes. El método tradicional de manejo de excepciones se controla principalmente mediante el indicador booleano de la declaración IF y el valor de retorno de la función especial, como el uso de declaraciones condicionales para manejar excepciones durante la ejecución del programa. Puede ocurrir un error al abrir un archivo vacío. Si abre el cuadro de diálogo Nombre de archivo = nil, entonces ///Determine si desea seleccionar el archivo. Inicie ShowMessage (si el archivo seleccionado no es válido, vuelva a seleccionarlo). Fin El ejemplo anterior utiliza la declaración IF para determinar el evento anormal y luego solicita una reoperación. Este método de manejo de excepciones es ciertamente fácil de entender, pero si se usan declaraciones IF en todas partes para verificar errores y manejar excepciones durante la escritura del software, el trabajo de programación se volverá más complicado. En Delphi, este problema se puede solucionar de una forma más sencilla. Object Pascal admite múltiples mecanismos de manejo de excepciones y proporciona mecanismos avanzados de manejo de excepciones. Aquí se analizan dos métodos de manejo de excepciones para crear bloques de declaraciones protegidos. El llamado bloque de declaraciones protegidas son una o más declaraciones, y el procesador generará excepciones para estas declaraciones. Las palabras clave try y except se utilizan para crear bloques de declaraciones protegidos. La estructura específica es la siguiente: try //Segmentos de código que pueden causar excepciones...excepto //Segmentos de código usados ​​para manejar excepciones...END donde try y except son palabras clave, y try se usa para marcar segmentos de código que pueden generar excepciones. Si el programa genera una excepción durante la ejecución, el sistema pausará la ejecución del segmento de código de prueba y continuará la ejecución de acuerdo con el segmento de código establecido por la excepción. A continuación se muestra un ejemplo de cómo utilizar esta estructura para crear un bloque de declaración protegido. El código principal para llamar específicamente al proceso de procesamiento de eventos es el siguiente: v. Ar I j k integer begin I = j = try k = j div I// Declaraciones que generan excepciones distintas de ShowMessage (¡Error de Divede! I = IntToStr(I) J IntToStr( J) K = IntToStr(K))End En este proceso, la expresión JdivI intenta hacer que el objeto Pascal runtime genere una excepción a través de la división, ejecutando así la declaración ShowMessage en el bloque de excepción. El proceso de ejecución de este programa de control de declaraciones de protección tiene principalmente los siguientes tres puntos (). Si la declaración en el bloque de excepción maneja el procedimiento o función de excepción, continuará ejecutándose normalmente después del bloque de guardia () Si no hay ninguna declaración que maneje la excepción, el procedimiento o función actual saldrá inmediatamente de la cadena de llamada de búsqueda de excepción hasta se encuentra un controlador adecuado () . Las excepciones no controladas finalmente llegan al controlador de excepciones predeterminado de la aplicación. El controlador de excepciones predeterminado muestra un cuadro de diálogo y un mensaje. El controlador de excepciones predeterminado recibe todas las excepciones no controladas. Muestra ejemplos de creación de bloques de recursos protegidos y superiores. Mostrar mensajes de error es sólo un aspecto del manejo de excepciones. Las aplicaciones confiables deben restaurar la estabilidad cuando ocurren excepciones. Si se produce un error de disco, la aplicación debe liberar memoria que no podrá utilizarse hasta que el usuario reinicie.

Un programa confiable puede eliminar errores fácilmente, liberar recursos de Windows cerrando archivos y recuperarse del desorden por cualquier medio posible. Esta situación se puede crear utilizando las palabras clave try y finalmente. Un bloque de recursos protegido simplemente consta de una o más declaraciones del procesador que pueden provocar un uso anormal de los recursos. La estructura del marco básico de este bloque de recursos protegido es try // La declaración del programa finalmente // Los recursos liberados terminan en esta estructura Independientemente de si las declaraciones en el bloque try generan una excepción, las declaraciones en el bloque finalmente siempre se ejecutan. Por lo general, las declaraciones en un bloque finalmente liberan memoria, cierran archivos y realizan otras operaciones que deben completarse para restaurar la estabilidad del sistema. Si una declaración fuera del bloque try genera una excepción, inmediatamente hará que el proceso o el proceso salte, omitiendo el bloque finalmente, por lo que debe prestar atención. Una cosa es que las declaraciones de asignación no deben colocarse en bloques de prueba, incluso si ocurre una excepción (como un error de asignación de memoria debido a una RAM defectuosa). Finalmente, el propósito de este bloque es liberar recursos, por lo que es necesario colocar una declaración de asignación antes del bloque try. En este bloque, inserte cualquier declaración que pueda generar una excepción o hacer que el procedimiento o función se cierre para que los recursos asignados puedan suspenderse hasta que el usuario reinicie. El siguiente artículo analiza esta técnica con ejemplos prácticos y muestra cómo utilizar bloques de recursos protegidos para evitar que los recursos se cuelguen. El código principal para el proceso específico es el siguiente: VARIJ KNTEG. Puntero ErP Begin I = J = //Asigna recursos de memoria al valor inicial de la variable GETmem (P) // Prueba k = j div i var i j k entero p puntero Begin I = J =//Pregunta el valor inicial de la variable GETmem (P) //Asignar recursos de memoria Pruebe k = j div i excepto show message(rrsults I inttostr(I) J int tostr(J) ki int tostr(k))Finalmente libere mem(P); ShowMessage (la memoria ha sido liberada) Fin El proceso anterior es similar al bloque de declaración protegido, excepto que se agrega una declaración para asignar memoria. Esta declaración llama a GetMem para guardar 4098 bytes de memoria. Cuando ocurre una excepción, el programa configura bloques de recursos protegidos para liberar recursos que ocupan memoria. Además, existen expresiones de división potencialmente erróneas en su programa dentro de los bloques try. Si la división no está en intento, la ejecución de esta declaración generará un proceso de excepción. Agregar estructuras de manejo de excepciones a los programas para controlar las excepciones es muy útil en el proceso de programación. Algunas personas pueden pensar que el manejo de excepciones es muy complicado o poco útil. De hecho, el manejo de excepciones no es complicado. No es más que interrumpir el código del programa que genera la excepción, detectar posibles excepciones y manejarlas en consecuencia. Después de dominar este método básico, comprenderé la importancia de utilizar el mecanismo de manejo de excepciones y cómo utilizar la diferencia. El mecanismo de procesamiento habitual es Lishi Xinzhi/article/program/Delphi/201311/24897.