ErrObject.Raise(Int32, Object, Object, Object, Object) Método

Definição

Gera um erro em tempo de execução; pode ser usado em vez da Error afirmação.

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

Required. Long inteiro que identifica a natureza do erro. Os erros do Visual Basic estão no intervalo 0-65535; o intervalo 0-512 está reservado para erros do sistema; o intervalo 513-65535 está disponível para erros definidos pelo utilizador. Ao definir a Number propriedade para o seu próprio código de erro num módulo de classe, adiciona o número do código de erro à vbObjectError constante. Por exemplo, para gerar o erro número 513, atribui vbObjectError + 513 à Number propriedade.

Source
Object

Optional. String expressão que nomeia o objeto ou aplicação que gerou o erro. Ao definir esta propriedade para um objeto, use a forma project.class. Se Source não for especificado, utiliza-se o ID do processo do projeto Visual Basic atual.

Description
Object

Optional. String expressão que descreve o erro. Se não especificado, o valor da Number propriedade é analisado. Se puder ser mapeada para um código de erro em tempo de execução Visual Basic, a cadeia que seria devolvida pela função Error é usada como propriedade Description. Se não houver erro de Visual Basic correspondente à propriedade Number, utiliza-se a mensagem "Erro definido pela aplicação ou definido por objeto".

HelpFile
Object

Optional. O caminho totalmente qualificado para o ficheiro de Ajuda onde a ajuda sobre este erro pode ser encontrada. Se não especificado, o Visual Basic utiliza o disco totalmente qualificado, o caminho e o nome do ficheiro de Ajuda do Visual Basic.

HelpContext
Object

Optional. O ID de contexto que identifica um tópico e HelpFile que ajuda para o erro. Se omitido, o ID de contexto do ficheiro de ajuda Visual Basic para o erro correspondente à propriedade Number é utilizado, caso exista.

Exemplos

Este exemplo utiliza o método Raise do objeto Err para gerar um erro dentro de uma função escrita em Visual Basic. A função de chamada pode detetar o erro e reportá-lo ao utilizador através de 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

Observações

Todos os Raise argumentos, exceto Number os opcionais, são opcionais. Se omitir argumentos opcionais, e as definições de propriedades do Err objeto conterem valores que não foram eliminados, esses valores servem como valores para o seu erro.

Como o Err objeto fornece informação mais rica do que quando 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 fonte que gerou o erro pode ser especificada na Source propriedade, a Ajuda online para o erro pode ser referenciada, e assim sucessivamente.

Aplica-se a

Ver também