Estoy acostumbrado a la programación en C#, que obviamente tiene algunos bastante robusto manejo de errores. Ahora estoy trabajando en una breve proyecto en VBScript. He leído sobre el manejo de errores con VBscript el uso de «En caso de Error _______» y el Err variable global.

Sin embargo, existe alguna manera de que pueda generar mis propios errores? Por ejemplo, si uno de mis funciones se pasa de un tipo incorrecto de parámetros prefiero mi script solo plano fallar en ese punto, a continuación, intente continuar.

InformationsquelleAutor Eric Anastas | 2010-12-21

3 Comentarios

  1. 22

    Mientras @helen‘s respuesta es correcto, es un poco escasa.

    Que los detalles de la Err.Raise() método, pero se pierde en algunos puntos clave.

    a partir De la pregunta original

    Sin embargo, existe alguna manera de que pueda generar mis propios errores? Por ejemplo, si uno de mis funciones se pasa de un tipo incorrecto de parámetros prefiero mi script solo plano fallar en ese punto, a continuación, intente continuar.

    Err.Raise() es extremadamente versátil que puede lanzar las excepciones existentes (como ya se ha comentado) pero también puede tirar completamente nuevo excepciones definidas por el usuario.

    Call Err.Raise(vbObjectError + 10, "My Application", "My custom error message")

    La vbObjectError (-2147221504) es un VBScript constante que define el límite para la cría de errores definidos por el usuario.

  2. 2

    C# try-catch-finally

    try {
        // some code
    } catch( Exception e ) {
        // error handler
    } finally {
        // clean up things
    }

    Equivalente de VBScript

    on error resume next
    ' some code
    if( Err.number <> 0 ) then
        ' error handler -- you can use Err.raise() here to display your own errors
        Err.clear()
    else
        ' clean up things
    end if
    on error goto 0

    Para el bien de VBScript ejemplos, se puede comprobar la ASP Xtreme Evolución del proyecto

    • Creo que la mejor práctica es envolver su manejo de errores de lógica en una etiqueta en lugar de utilizar On Error Resume Next.
    • sólo para hacer un paralelo con C#
    • On Error GoTo Etiqueta no se admite en VBScript.
    • Después de un tiempo de VB6 y VBScript un poco de mezcla juntos.
    • Estos dos códigos de bloques no son equivalentes porque un finally bloque se ejecuta incluso cuando se produce el error. Su VBScript «equivalente» debe tener la 'clean up things parte fuera de la If declaración, y un On Error GoTo 0 para detener el manejo de errores. Además, otra diferencia es que el VBScript 'some code parte, solo puede ser una línea de tiempo, o al menos sólo puede contener una línea que podría generar un error, porque el muy próximo de la línea, no importa lo que sea se ejecuta cuando On Error Resume Next está activo. If 1 = 1 / 0 Then fluya EN el bloque If.

Dejar respuesta

Please enter your comment!
Please enter your name here