La Web del Programador: Comunidad de Programadores
 
    Pregunta:  44963 - CONTROL DE ERROR CON ASP
Autor:  Javier Dumpan
Tengo un formulario de inserción de datos en una BD SQL server hecho en ASP desde Dreanweaver , cuando introducto un nuevo registro con la clave duplicada de da un error tipico \"Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]Infracción de la restricción PRIMARY KEY \'PK_TReclamaciones\'. No se puede insertar una clave duplicada en el objeto \", ¿Como puedo controlar este error para que redirecionar a una pagina web de errores con información al usuario del problema y que no corte el proceso web?

  Respuesta:  Heves Menegozzi
Puedes utilizar un sencillo "On Error Resume Next"

por ejemplo:
On Error Resume Next
Conn.Execute "INSERT INTO XXXXXXXX (AQUI TU INSTRUCCION DE INSERCIÓN)"
If Conn.Errors.Count>0 then
For Each vErr in Conn.Errors
If vErr.Number<>0 Then
Response.Redirect "PaginaError.Asp?N=" & vErr.Number & "&D=" & vErr.Description
End IF
Next
End if

El código anterior verifica si hay errores y te redirecciona a una página de error pasándole como parámetros el número del error y su descripción. Puedes configurar la página de error como ru quieras y mostrar el mensaje que quieras, grabarlo en una base de datos, realizar estadísticas o lo que se te antoje.

Saludos y suerte...

Heves desde Venezuela