Saltar al contenido

Reasignación de Mensajes de Error

Descripción General

Como novedad en Vinyl 2.6, Vinyl permite a los desarrolladores proporcionar mensajes de reemplazo comunes y fáciles de usar para errores de excepción de la base de datos. Proporcionar mensajes amigables puede ayudar a los usuarios que no están familiarizados con la tecnología de bases de datos a comprender qué sucede cuando ocurre un error. Reemplazo de mensajes de error como Violation of PRIMARY KEY constraint 'PK_ProductInt' con algo más comprensible como Record already exists puede contribuir en gran medida a mejorar la experiencia del usuario.

Para reasignar un mensaje de error, primero se deben realizar varios pasos para identificar la excepción:

  • El tipo de base de datos se determina haciendo coincidir las propiedades de la excepción:

  • Nombre del tipo: este es el nombre completo de la clase de excepción

  • Fuente: Este es el paquete ensamblador para la DLL

  • Se intenta hacer coincidir un mensaje de error de la base de datos utilizando expresiones regulares para el mensaje de excepción y los parámetros de datos.

    • Primero, se escanea la lista de mensajes de excepción específicos de la base de datos en Index orden
    • Si no se encuentra ninguna coincidencia, la lista de entradas de mensajes de excepción generales se escanea en Index orden

En el caso de que no se encuentre ninguna coincidencia, el mensaje de excepción no se modificará.

Mapeo de Tipos de Bases de Datos

El mapeo de tipos de bases de datos permite al desarrollador asignar clases de excepción a tipos de bases de datos específicos. De esta manera, se puede examinar un conjunto más pequeño de mensajes de excepción al intentar reasignar un mensaje de excepción.

De forma predeterminada, Vinyl se entrega con muchos de los tipos de bases de datos típicos ya precargados. En el caso improbable de que se requiera una nueva entrada, un desarrollador puede realizar los siguientes pasos para agregar una nueva asignación de base de datos:

  • Navegue hasta Vinyl IDE > Configuración > Mensajes de error:

    Mensajes de error

  • Haga clic en el botón Configurar de la barra de herramientas en el panel Tipo de base de datos:

    Configuración BD

  • Haga clic en Crear

  • Elija su Tipo de base de datos y complete los siguientes detalles:

  • Nombre de tipo: el nombre completo de la clase de excepción (p. ej. System.Data.SqlClient.SqlException)

  • Fuente: campo opcional para proporcionar el nombre del ensamblado de la DLL. Este campo es útil si se reasigna un tipo de excepción del sistema para un ensamblaje específico. Por ejemplo, el tipo de base de datos Rest reasigna el tipo de sistema System.InvalidOperationException Para el Vinyl.DataSource.Rest Sólo montaje.
  • Descripción: campo opcional para proporcionar una descripción de la entrada

  • Haga clic en el icono de marca de verificación para guardar la entrada.

Ahora los mensajes de error de excepciones se pueden asignar al tipo de base de datos configurado.

Error de Mensajes

Para reasignar correctamente un mensaje de error, se debe realizar una entrada inteligente y fácil de usar en la tabla de mensajes de error. Las entradas se pueden agregar a una de dos listas:

  1. Un mensaje de error para un tipo de base de datos específico (p. ej. Microsoft SQL Server)
  2. Un mensaje de error para cualquier tipo de base de datos.

Cuando se encuentra una excepción en la base de datos, primero se examina la lista de mensajes de error para el tipo de base de datos asignada. Si no se encuentra ninguna coincidencia, se examina la lista de mensajes de tipo de base de datos no específicos (mensajes de error con un tipo de base de datos NULL). Cada lista está ordenada por Index.

Para ingresar un nuevo mensaje de error:

  • Vaya a Vinyl IDE > Configuración > Mensajes de error
  • Haga clic en Crear en el panel Errores e ingrese los detalles:

    Dberror

Parámetros de Mensajes de Error

La lista de parámetros para un mensaje de error es la siguiente:

Mensaje

El mensaje de reemplazo que se mostrará al usuario. Este mensaje puede incluir parámetros de sustitución en forma de grupos de captura de expresiones regulares con nombre (del mensaje de excepción Pattern) o nombres de parámetros de datos de excepción usando el Vinyl {{nombre}} sintaxis.

Patrón

Este es el patrón de expresión regular utilizado para hacer coincidir el mensaje de excepción. Este patrón puede especificar grupos de captura con nombre, p. Capture group 'Key' inside quotation marks "(?<Key>.*)".

Nota

El patrón utiliza coincidencia de expresiones regulares de una sola línea. Actualmente no se admiten coincidencias de varias líneas.

Patrón de ejemplo:

Parámetro Valor
Ejemplo Violation of PRIMARY KEY constraint 'PK_OrderDetails'.
Patrón ^Violation of PRIMARY KEY constraint '(?<Key>.*)'.
Mensaje Row already exists for key '{{Clave}}'.

Salidas Row already exists for key 'PK_OrderDetails'.

La coincidencia comienza al principio de la cadena. Incluye un grupo de captura llamado Key que coincide PK_OrderDetails dentro de las comillas simples.

Ejemplo

Este es un mensaje de excepción de ejemplo que coincidirá con el dado Pattern. Si se ingresa un ejemplo, se validará la expresión regular del patrón.

Índice

El índice permite ordenar los mensajes de error. Tenga en cuenta que Index no es una clave única. Varios mensajes de error pueden compartir lo mismo Index ya que la mayoría de los partidos realmente no se pueden ordenar. Por defecto el Index está establecido en 100 y, en la mayoría de los casos, tiene sentido dejarlo como está. Sin embargo, algunas coincidencias obviamente se pueden mover al principio o al final de la lista de procesamiento. Por ejemplo, si el desarrollador desea crear un patrón general que coincida con cualquier cadena (de modo que el mensaje de excepción siempre se reasigne incluso si todas las coincidencias anteriores fallan), podría utilizar un valor muy alto. Index valor (por ejemplo, 9999).

Datos de Excepción

El Data También se puede hacer coincidir el diccionario de parámetros para una excepción. Esto es útil cuando una excepción contiene un mensaje genérico pero tiene detalles de excepción específicos en el Data diccionario. Hay tres Data entradas que se pueden agregar a un mensaje de error. Deberá hacer doble clic en el mensaje de error para ver la lista completa de parámetros de datos de excepción.

  • Name: El nombre del parámetro de datos de excepción.
  • Regex: La expresión regular que se comparará con el valor del parámetro de datos de excepción.

Sustituciones

Como se discutió anteriormente, el fácil de usar Message puede incluir sustituciones que resuelvan:

  • Un grupo de captura con nombre en el Pattern o
  • Un nombre de parámetro de datos de excepción.

La sintaxis de las sustituciones es {{nombre}} y se puede utilizar en cualquier lugar dentro del Message.

Enviar Mensajes de Usuario

Las asignaciones de tipos de bases de datos de usuarios y los mensajes de error se empaquetan con los LP creados en la instancia de Vinyl. Cuando se instala un LP en otra instancia de Vinyl, esas entradas de usuario también se instalarán. Esto sigue el mismo patrón que las funciones mvSQL definidas por el usuario. Las nuevas entradas se activan inmediatamente después de la instalación. Actualmente, no hay forma de desactivar esta funcionalidad.