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.