ErrObject.Raise(Int32, Object, Object, Object, Object) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Gera um erro em tempo de execução; pode ser usado em vez da instrução 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
Obrigatórios. Long
inteiro que identifica a natureza do erro. Os erros do Visual Basic estão no intervalo 0-65535; o intervalo 0-512 é reservado para erros do sistema; o intervalo 513-65535 está disponível para erros definidos pelo usuário. Ao definir a propriedade Number
com seu próprio código de erro em um módulo de classe, você adiciona seu número de código de erro à constante vbObjectError
. Por exemplo, para gerar o erro número 513, atribua vbObjectError + 513
à propriedade Number
.
- Source
- Object
Opcional. String
expressão que nomeia o objeto ou aplicativo que gerou o erro. Ao definir essa propriedade para um objeto, use o formulário project
class
. Se Source
não for especificado, a ID do processo do projeto atual do Visual Basic será usada.
- Description
- Object
Opcional. String
expressão que descreve o erro. Se não for especificado, o valor na propriedade Number
será examinado. Se ele pode ser mapeado para um código de erro em tempo de execução do Visual Basic, a cadeia de caracteres que seria retornada pela função Error
é usada como a propriedade Description
. Se não houver nenhum erro do Visual Basic correspondente à propriedade Number
, a mensagem "Erro definido pelo aplicativo ou definido pelo objeto" será usada.
- HelpFile
- Object
Opcional. O caminho totalmente qualificado para o arquivo de Ajuda no qual se pode encontrar ajuda sobre este erro. Se não for especificado, o Visual Basic usará a unidade totalmente qualificada, o caminho e o nome do arquivo de Ajuda do Visual Basic.
- HelpContext
- Object
Opcional. A ID de contexto que identifica um tópico no HelpFile
que fornece ajuda para o erro. Se omitida, a ID de contexto do arquivo de Ajuda do Visual Basic para o erro correspondente à propriedade Number
será usada, se ela existir.
Exemplos
Este exemplo usa o Err
método do Raise
objeto para gerar um erro dentro de uma função escrita no Visual Basic. A função de chamada pode capturar o erro e denunciá-lo ao usuário com uma caixa de mensagem.
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
Comentários
Raise
Todos os argumentos, exceto Number
, são opcionais. Se você omitir argumentos opcionais e as configurações de propriedade do objeto contiverem valores que não foram limpos, esses valores servirão como valores para o Err
erro.
Como o Err
objeto fornece informações mais avançadas do que quando você gera erros com a Error
instrução , Raise
é útil para gerar erros ao escrever módulos de classe. Por exemplo, com o Raise
método , a origem que gerou o erro pode ser especificada na Source
propriedade , a Ajuda online para o erro pode ser referenciada e assim por diante.