ErrObject.Raise(Int32, Object, Object, Object, Object) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Generuje błąd czasu wykonywania; można użyć zamiast instrukcji 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)
Parametry
- Number
- Int32
Wymagane. Long
liczba całkowita określająca charakter błędu. Błędy języka Visual Basic znajdują się w zakresie od 0 do 65535; zakres 0–512 jest zarezerwowany dla błędów systemowych; zakres 513-65535 jest dostępny dla błędów zdefiniowanych przez użytkownika. Podczas ustawiania Number
właściwości na własny kod błędu w module klasy należy dodać numer kodu błędu do stałej vbObjectError
. Aby na przykład wygenerować numer błędu 513, przypisz vbObjectError + 513
do Number
właściwości .
- Source
- Object
Opcjonalny. String
wyrażenie nazewnictwa obiektu lub aplikacji, które wygenerowało błąd. Podczas ustawiania tej właściwości dla obiektu użyj formularza project
.class
. Jeśli Source
nie zostanie określony, zostanie użyty identyfikator procesu bieżącego projektu Visual Basic.
- Description
- Object
Opcjonalny. String
wyrażenie opisujące błąd. W przypadku nieokreślonej wartości właściwości jest badana Number
. Jeśli można go zamapować na kod błędu czasu wykonywania języka Visual Basic, ciąg, który zostanie zwrócony przez Error
funkcję, jest używany jako Description
właściwość . Jeśli nie ma błędu języka Visual Basic odpowiadającego Number
właściwości, jest używany komunikat "Błąd zdefiniowany przez aplikację lub obiekt".
- HelpFile
- Object
Opcjonalny. W pełni kwalifikowana ścieżka do pliku Pomocy, w którym można znaleźć pomoc dotyczącą tego błędu. Jeśli jest to nieokreślone, program Visual Basic używa w pełni kwalifikowanej dysku, ścieżki i nazwy pliku pomocy języka Visual Basic.
- HelpContext
- Object
Opcjonalny. Identyfikator kontekstu identyfikujący temat w ramach HelpFile
programu , który zapewnia pomoc dotyczącą błędu. W przypadku pominięcia identyfikator kontekstu pliku pomocy języka Visual Basic dla błędu odpowiadającego Number
właściwości jest używany, jeśli istnieje.
Przykłady
W tym przykładzie Err
użyto metody obiektu do wygenerowania Raise
błędu w funkcji napisanej w języku Visual Basic. Funkcja wywołująca może przechwycić błąd i zgłosić go użytkownikowi z polem komunikatu.
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
Uwagi
Wszystkie argumenty z Raise
wyjątkiem Number
są opcjonalne. Jeśli pominięto opcjonalne argumenty, a ustawienia Err
właściwości obiektu zawierają wartości, które nie zostały wyczyszczone, te wartości służą jako wartości błędu.
Err
Ponieważ obiekt udostępnia bogatsze informacje niż podczas generowania błędów za pomocą Error
instrukcji , Raise
jest przydatny do generowania błędów podczas pisania modułów klas. Na przykład za pomocą Raise
metody można określić źródło, które wygenerowało błąd we Source
właściwości , można odwoływać się do pomocy online dla błędu itd.