2009-05-13 13 views

Respuesta

4

al reanudar el error siguiente: Si hay una excepción en el programa, simplemente ignorarlo y continuar a la siguiente instrucción. Considerado muy malo y feo, y con razón en mi opinión. Es como tener un gran:

try 
{ 
    // your code 
} 
catch 
{ 
    // nothing! muhaha 
} 

en cada método de su código (o peor, todo el programa de toda ).

En error goto 0: deshabilita cualquier controlador de errores que se define en el procedimiento actual. Es como tener un gran try-catch alrededor de tu código, que se desactiva tan pronto como llega a esta línea.

Para obtener más información, consulte el MSDN.

+2

+1 Sí. Acabo de descubrir esto: si usa En error Goto 0, todas las demás declaraciones On Error en el procedimiento quedan deshabilitadas. Eso fue totalmente inesperado. Pensé que la documentación decía que solo el último controlador de error ejecutado está deshabilitado. Esperaba que si el código llegaba a otro controlador de errores, se habilitaría de nuevo, pero no es así. – authentictech

3

en caso de error vaya a lleva el código de ejecución a una marca de libro de códigos específica definida en la página. Esto es útil cuando desea realizar cualquier cosa en caso de que se encuentre un error.

En caso de error, reanudamos el siguiente paso al siguiente código de ejecución después del código erróneo. Básicamente ignora el error y continúa con el código. Esto es particularmente útil cuando procesa cientos de registros y no desea que el código detenga la ejecución en caso de que algún registro arroje un error.

3

on error resume next significa simplemente que ignora el error y continúa la próxima on error goto 0 significa poner fin a la hoja de vida en caso de error siguiente también se puede hacer esto

 <% 
     on error resume next '<-- This code will resume and continue executing the code if there is an error 



'YOUR CODE HERE 

if err.number > 0 then '<-- This code will look if there are any errors (even if resumed) 
' or use If Err.Number <> 0 Then 


     'DO SOMETHING IF ERROR 
    %> 
     Error Number <%= Err.Number %><BR> 
     Error Description <%= Err.Description %><BR>   
     Source <%= Err.Source %><BR> 

     LineNumber <%= Err.Line %><BR> 

     <%end if%> 
+1

Esto generará un error de sintaxis, por lo que no se puede usar para demostrar el manejo de errores en tiempo de ejecución. –

+1

@ Ekkehard.Horner Yup, lo edité. Thx por el aviso :-) – compcobalt

1

Solía ​​usar "única prueba" bucles do para construir clásica Controladores de errores ASP que cubren varias líneas de código y múltiples casos de error. Esa técnica se basa en (¿compensa?) El uso de "En reanudación de error siguiente" saliéndose del bucle tan pronto como se produce un error, y luego prueba y reacciona ante clases de errores en algún código de seguimiento de errores. Tenga en cuenta que dado que la ruptura ocurre en un bucle en la misma función que el bucle, aún tiene el contexto (variables) que se establecieron cuando el bucle aún se estaba ejecutando, por lo que su controlador de errores debería usar ese contexto para registrar errores inteligentes y limpiar cualquier referencia persistente según corresponda.

Consulte la respuesta "Larry" a una pregunta similar para obtener un ejemplo rápido de esto.
How to handle errors in VB Script

Cuestiones relacionadas