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.
Ayuda / WLanguage / Funciones WLanguage / Funciones estándar / Funciones de excepciones
  • 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
  • Proceso de excepción y Component
  • Proceso de excepción e subprocesos
  • Funciones de gestión de excepciones generales
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Mecanismo general de excepción
Presentación
Una 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.
Por ejemplo:
  • Si la excepción Process se declara en el código de inicialización del proyecto, es válida para cualquier error que se produzca 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, Page o reporte, es válido para cualquier error que se produzca en la ventana, en el Page, en un control de ventana, en un control Page o en un Procedure local a la ventana o al Page. Esta excepción Process deja de ser válida cuando se cierra la ventana o el Page.
  • 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 Page 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 Page.
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:
// Project initialization code
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 activar una excepción Process una vez utilizada, 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: Se ha declarado una excepción general Process a nivel de Page y a nivel de proyecto.
Se produce un primer error de programación en el Page. Este error es Process ed por la excepción Process del Page.
Se produce un segundo error en la Page. 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, ya que cualquier error provocará la visualización de la ventana estándar/Page 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, se vuelve a ejecutar el mismo Line de código: la excepción ya fue procesada y el mecanismo de seguridad de WLanguage se activa.
// Exception process
WHEN 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.
  • Utilizar SetFocusAndReturnToUserInput para devolver 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 declaraciones compuestas como:
  • FOR
  • LOOP
  • WHILE
En este tipo de declaraciones, utilice la excepción específica Process.

Proceso de excepción y Component

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

Proceso de excepción e subprocesos

Si se realiza un proceso de excepción general en el código de inicialización del proyecto, se disparará si se produce una excepción:
  • en el subproceso principal,
  • en un subproceso secundario iniciado con la función ThreadExecute.
Sin embargo, si el subproceso secundario dispara una excepción, no se podrá conocer su origen con la función ExceptionInfo en el código del proyecto. Para conocer el origen de una excepción en un subproceso secundario, se debe incluir el proceso de la excepción en el subproceso secundario.
Funciones de gestión de excepciones generales
Las funciones específicas de la gestión de excepciones pueden utilizarse con los procesos de excepción generales:
ExceptionDisplayMuestra la ventana estándar de excepciones con el contenido de la excepción actual..
ExceptionEnableVuelve a habilitar la actual excepción Process si la excepción fue corregida.
ExceptionInfoRecupera información sobre la excepción actual.
ExceptionPropagatePropaga una excepción.
ExceptionRestoreParameterRestaura la excepción Process de una Process.
ExceptionThrowActiva artificialmente el mecanismo de seguridad de WLanguage lanzando una excepción.
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

Última modificación: 27/01/2023

Señalar un error o enviar una sugerencia | Ayuda local