ErrObject.Raise(Int32, Object, Object, Object, Object) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Genera un error en tiempo de ejecución; se puede utilizar en lugar de la instrucción Error
.
public void Raise (int Number, object? Source = default, object? Description = default, object? HelpFile = default, object? HelpContext = default);
public void Raise (int Number, object Source = default, object Description = default, object HelpFile = default, object HelpContext = default);
member this.Raise : int * obj * obj * obj * obj -> unit
Public Sub Raise (Number As Integer, Optional Source As Object = Nothing, Optional Description As Object = Nothing, Optional HelpFile As Object = Nothing, Optional HelpContext As Object = Nothing)
Parámetros
- Number
- Int32
Obligatorio. Entero de tipo Long
que identifica la naturaleza del error. Los errores de Visual Basic vienen indicados por el intervalo 0-65535, el intervalo 0-512 queda reservado para los errores del sistema y el intervalo 513-65535 es para los errores definidos por el usuario. Cuando se establece el valor de la propiedad Number
en un código de error propio en un módulo de clase, se suma el número del código de error a la constante vbObjectError
. Por ejemplo, para generar el número de error 513, asigne vbObjectError + 513
a la Number
propiedad .
- Source
- Object
Opcional. Expresión de tipo String
que denomina el objeto o la aplicación que generó el error. Al establecer esta propiedad para un objeto, use el formulario project
.class
. Si no se especifica Source
, se utiliza el identificador de proceso del actual proyecto de Visual Basic.
- Description
- Object
Opcional. Expresión de tipo String
que describe el error. Si no se especifica, se examina el valor de la propiedad Number
. Si se puede asignar a un código de error en tiempo de ejecución de Visual Basic, la cadena que devuelva la función Error
se utilizará como la propiedad Description
. Si hay ningún error de Visual Basic que corresponda a la propiedad Number
, se utiliza el mensaje "Error definido por la aplicación o por el objeto".
- HelpFile
- Object
Opcional. Ruta de acceso completa al archivo de Ayuda referente a este error. Si no se especifica, Visual Basic utiliza la unidad, la ruta de acceso y el nombre completos del archivo de Ayuda de Visual Basic.
- HelpContext
- Object
Opcional. Identificador de contexto que identifica un tema dentro del HelpFile
que proporciona ayuda para el error. Si no se especifica, se utiliza el identificador de contexto del archivo de Ayuda de Visual Basic correspondiente a la propiedad Number
si existe.
Ejemplos
En este ejemplo se usa el Err
método del Raise
objeto para generar un error dentro de una función escrita en Visual Basic. La función de llamada puede detectar el error y notificarlo al usuario con un cuadro de mensaje.
Module Module1
Const WidthErrorNumber As Integer = 1000
Const WidthHelpOffset As Object = 100
Sub Main()
CallingProcedure()
End Sub
Sub TestWidth(ByVal width As Integer)
If width > 1000 Then
' Replace HelpFile.hlp with the full path to an appropriate
' help file for the error. Notice that you add the error
' number you want to use to the vbObjectError constant.
' This assures that it will not conflict with a Visual
' Basic error.
Err.Raise(vbObjectError + WidthErrorNumber, "ConsoleApplication1.Module1.TestWidth",
"Width must be less than 1000.", "HelpFile.hlp", WidthHelpOffset)
End If
End Sub
Sub CallingProcedure()
Try
' The error is raised in TestWidth.
TestWidth(2000)
Catch ex As Exception
' The Err object can access a number of pieces of
' information about the error.
Console.WriteLine("Information available from Err object:")
Console.WriteLine(Err.Number)
Console.WriteLine(Err.Description)
Console.WriteLine(Err.Source)
Console.WriteLine(Err.HelpFile)
Console.WriteLine(Err.HelpContext)
Console.WriteLine(Err.GetException)
Console.WriteLine(vbCrLf & "Information available from Exception object:")
Console.WriteLine(ex.Message)
Console.WriteLine(ex.ToString)
Err.Clear()
End Try
End Sub
End Module
' The example produces the following output:
' Information available from Err object:
' -2147220504
' Width must be less than 1000.
' ConsoleApplication1.Module1.TestWidth
' HelpFile.hlp
' 100
' System.Exception: Width must be less than 1000.
' at Microsoft.VisualBasic.ErrObject.Raise(Int32 Number, Object Source, Object
' Description, Object HelpFile, Object HelpContext)
' at ConsoleApplication1.Module1.TestWidth(Int32 width) in C:\Users\example\App
' Data\Local\Temporary Projects\ConsoleApplication1\Module1.vb:line 17
' at ConsoleApplication1.Module1.CallingProcedure() in C:\Users\example\AppData
' \Local\Temporary Projects\ConsoleApplication1\Module1.vb:line 25
'
' Information available from Exception object:
' Width must be less than 1000.
' System.Exception: Width must be less than 1000.
' at Microsoft.VisualBasic.ErrObject.Raise(Int32 Number, Object Source, Object
' Description, Object HelpFile, Object HelpContext)
' at ConsoleApplication1.Module1.TestWidth(Int32 width) in C:\Users\example\App
' Data\Local\Temporary Projects\ConsoleApplication1\Module1.vb:line 17
' at ConsoleApplication1.Module1.CallingProcedure() in C:\Users\example\AppData
' \Local\Temporary Projects\ConsoleApplication1\Module1.vb:line 25
Comentarios
Todos los Raise
argumentos excepto Number
son opcionales. Si omite argumentos opcionales y la configuración de propiedad del Err
objeto contiene valores que no se han borrado, esos valores sirven como valores para el error.
Dado que el Err
objeto proporciona información más completa que cuando se generan errores con la Error
instrucción , Raise
resulta útil para generar errores al escribir módulos de clase. Por ejemplo, con el Raise
método , se puede especificar el origen que generó el error en la propiedad , se puede hacer referencia a la Source
Ayuda en línea para el error, etc.