PC SOFT

AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente. Haga clic aquí para ver la versión en inglés.
  • Presentación
  • Declarando varios procesos de excepciones generales
  • Declarando las Process es de excepciones generales en el mismo Process
  • Declarando los procesos de excepción en diferentes procesos
  • Anidando los procesos de excepción en diferentes procesos: gestionando la excepción a través de un nivel superior
  • Principales observaciones
  • Una excepción Process sólo puede ser utilizada una vez
  • Calidad del código WLanguage para procesar la excepción
  • La calidad del código después de una excepción Process
  • Caso especial
  • Excepción Process y componente
  • Excepción Process e hilos
  • Funciones para la gestión de las excepciones generales
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Otros
Procedimientos almacenados
Mecanismo de excepciones generales
Presentación
Un Process de excepción general está disponible para todos los componentes del objeto con el que es associated. Esta excepción Process puede ser utilizada siempre y cuando el objeto esté disponible.
Un Process de excepción general puede ser declarado en cualquier Process. Después de la ejecución de una excepción Process, se ejecuta el código WLanguage que sigue al Process.
Algunos ejemplos:
  • Si se declara la excepción Process en el código de inicialización del proyecto, es válida para cualquier error que ocurra en el proyecto.
  • Si el proceso de excepción se declara en el código de declaración de las variables globales de una ventana, página o reporte, es válido para cualquier error que ocurra en la ventana, en la página, en un control de ventana, en un control de página o en un Procedure local a la ventana o a la página. Esta excepción Process ya no es válida cuando se cierra la ventana o la página.
  • Si se declara la excepción Process en cualquier Process, es válida para cualquier error que ocurra en este Process. Esta excepción Process ya no será válida una vez que se complete el Process. Por lo tanto, una excepción Process declarada en el código de clic de un botón sólo será válida en este Process y en todos los procedimientos llamados desde este Process.
Declarando varios procesos de excepciones generales

Declarando las Process es de excepciones generales en el mismo Process

La segunda excepción Process reemplazará a la primera excepción Process de la declaración de la segunda excepción Process.
Ejemplo: En el ejemplo Procedure, si se produce un error:
  • En <Código1>: no se habilita la gestión de excepciones a menos que se haya definido una excepción Procedure en el código de llamada (en la ventana actual o en la página actual o en el proyecto).
  • En <Código 2>: la excepción activa Process es <Process de la excepción 1...
  • En <Código 3>: la excepción activa Process es <Process de la excepción 2...
PROCEDURE Example()
<"Code 1">
WHEN EXCEPTION
<Process of Exception 1>
END
<"Code 2">
WHEN EXCEPTION
<Process of Exception 2>
END
<"Code 3">

Declarando los procesos de excepción en diferentes procesos

Si se declara la excepción Process es en los objetos incrustados (proyecto y ventana, proyecto y página, ventana y control o página y control por ejemplo), la excepción Process del objeto más pequeño oculta la excepción principal Process durante la vida de este objeto.
Ejemplo: Si se declaran los dos siguientes procesos de excepción:
  • excepción Process A declarada en el código de inicialización de un proyecto,
  • excepción Process B declarada en el código de declaración de variables globales de una ventana o página.
Para todos los errores que se produzcan en la ventana o en la página, se utilizará la excepción Process B y se ocultará la excepción Process A.

Anidando los procesos de excepción en diferentes procesos: gestionando la excepción a través de un nivel superior

Si se declara la excepción Process es en objetos incrustados (proyecto y ventana, proyecto y página, ventana y control o página y control por ejemplo), el error puede ser gestionado en la excepción Process de nivel superior.
Todo lo que tienes que hacer es usar la palabra clave EXCEPCIÓN en la excepción Process.
Ejemplo:
// Initialization code of project
WHEN EXCEPTION
// Stop the application
EndProgram()
END
// Global procedure ControlValue
// Returns the value of the control or "" if the control does not exist
PROCÉDURE ControlValue(ControlName)
WHEN EXCEPTION
// For the UnknownControl error, "" is returned
IF ExceptionInfo(errCode) = UnknownControl THEN RESULT ""
// For another error, the error manager of the project is called
EXCEPTION
END
Principales observaciones

Una excepción Process sólo puede ser utilizada una vez

Una excepción Process sólo puede ser utilizada una vez. Si se produce una segunda excepción, la excepción Process no se ejecutará. Si existe una excepción Process de nivel superior, se ejecutará esta excepción Process.
Para volver a habilitar una excepción Process una vez que se ha utilizado, llame a ExceptionEnable. Atención: esta función debe ser usada con mucho cuidado.
WINDEVWINDEV Mobile Por ejemplo: Una excepción general Process fue declarada a nivel de ventana y a nivel de proyecto.
Un primer error de programación ocurre en la ventana. Este error está Process ed por la excepción Process de la ventana.
Un segundo error ocurre en la ventana. Este error es Process ed por la excepción Process del proyecto.
WEBDEV - Código Servidor Por ejemplo: Una excepción general Process fue declarada a nivel de página y a nivel de proyecto.
Un primer error de programación se produce en la página. Este error está Process ed por la excepción Process de la página.
Se produce un segundo error en la página. Este error es Process ed por la excepción Process del proyecto.

Calidad del código WLanguage para procesar la excepción

Una excepción Process no puede ser usada dentro de una excepción WLanguage Process. Le recomendamos que compruebe la calidad del código en los procesos de excepción porque cualquier error activará la visualización de la ventana/página estándar del mecanismo de seguridad de WLanguage.

La calidad del código después de una excepción Process

Después de la ejecución de una excepción Process, el código WLanguage que sigue al Process se ejecuta. Le recomendamos que preste atención a la calidad de este código (para evitar que aparezca un mensaje de error).
Ejemplo: En el siguiente código, {"Control1"}..Valor = 5 activa la excepción Process. Al final de la excepción Process, el mismo código Line se vuelve a ejecutar: la excepción ya fue procesada y el mecanismo de seguridad de WLanguage se activa.
// Exception processWHEN EXCEPTION
// Process to perform if an exception occurs
Trace("Error")
END
// Programming error: the Control1 control does not exist
{"Control1"}..Value = 5
Para evitar este problema, al final del proceso de excepción, se recomienda:
  • Asegúrate de que el problema se corrija y que no vuelva a ocurrir.
  • Use las palabras clave VOLVER y RESULTADO para salir de la actual Process.
  • Usa ReturnToCapture para devolverle control al usuario.
    WEBDEV - Código Servidor Esta funcionalidad no está disponible.
  • Utilice EndProgram para cerrar la aplicación.
Caso especial
Una excepción general Process no puede ser declarada en las declaraciones compuestas como:
  • FOR
  • LOOP
  • WHILE
En este tipo de sentencia, utilice el excepción específica Process.

Excepción Process y componente

Si se realiza una excepción general Process tanto en el código de inicialización del componente como en el código de inicialización del proyecto que contiene el componente, se ejecutará la excepción Process del proyecto cuando se produzca un error en uno de los elementos del componente.

Excepción Process e hilos

Si una excepción general Process es set en el código de inicialización del proyecto, se activará si se produce una excepción:
  • en el principal Thread,
  • en un Thread secundario iniciado por ThreadExecute.
Sin embargo, si el Thread secundario provoca una excepción, no será posible averiguar su origen con ExceptionInfo en el código del proyecto. Para averiguar el origen de una excepción en un thread secundario, la excepción Process debe ser incluida en el thread secundario.
Funciones para la gestión de las excepciones generales
Las funciones específicas de la gestión de excepciones pueden utilizarse con los procesos de excepción generales:
Versiones 10 y posteriores
ExceptionRestoreParameter
Nueva funcionalidad versión 10
ExceptionRestoreParameter
ExceptionRestoreParameter
Restaura la excepción Process de una Process.
Versiones 09 y posteriores
ExceptionEnable
Nueva funcionalidad versión 09
ExceptionEnable
ExceptionEnable
Vuelve a habilitar la actual excepción Process si la excepción fue corregida.
Versiones 10 y posteriores
ExceptionPropagate
Nueva funcionalidad versión 10
ExceptionPropagate
ExceptionPropagate
Propaga una excepción.
Versiones 09 y posteriores
ExceptionThrow
Nueva funcionalidad versión 09
ExceptionThrow
ExceptionThrow
Activa artificialmente el mecanismo de seguridad de WLanguage lanzando una excepción..
Versiones 09 y posteriores
Información de excepción
Nueva funcionalidad versión 09
Información de excepción
Información de excepción
Recupera información sobre la excepción actual.
Versiones 16 y posteriores
ExceptionDisplay
Nueva funcionalidad versión 16
ExceptionDisplay
ExceptionDisplay
Muestra la ventana estándar de excepciones con el contenido de la excepción actual..
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario