Obsługa wyjątków obiektów SMO
W kodzie zarządzanym wyjątki są generowane po wystąpieniu błędu.Obiekty SMO metod i właściwości nie jest zgłaszane sukces lub Niepowodzenie w wartości zwracanej.Zamiast tego wyjątków może być złowionych i obsługiwane przez program obsługi wyjątków.
Wyjątek różnych klas znajdują się w obiektów SMO.Informacji o wyjątku mogą być wyodrębniane z wyjątkiem właściwości takie jak Message Właściwość, która daje wiadomości tekstowej o wyjątku.
Instrukcje obsługi wyjątków są specyficzne dla języka programowania.Na przykład w Microsoft Visual Basic, jest on Catch Instrukcja.
Wewnętrzne wyjątki
Wyjątków może być ogólnych lub szczegółowych.Wyjątki ogólne zawierają zestaw określonych wyjątków.Kilka Catch instrukcje może służyć do obsługi przewidywanego błędów i umożliwić pozostałe błędy mieszczą się za pośrednictwem ogólny wyjątek obsługi. Wyjątki występują często w sekwencji kaskadowych.Często wyjątek obiekty SMO może być spowodowany wyjątek SQL.Sposób wykrywać to polega na użyciu InnerException Właściwość kolejno do określenia oryginalnego wyjątek, który spowodował wyjątek końcowe, najwyższego poziom.
Uwaga
The SQLException exception is declared in the System.Data.SqlClient namespace.
Diagram przedstawia przepływ wyjątki za pośrednictwem warstwy aplikacji.
Przykład
Aby używać dostarczonych przykładów kodu źródłowego, należy wybrać środowisko, szablon oraz język programowania, które będą używane do tworzenia aplikacji.Aby uzyskać więcej informacji zobacz Jak Tworzenie obiektów SMO projektu Visual Basic w programie Visual Studio .NET lub Jak Tworzenie projektu programu Visual C# obiekty SMO w programie Visual Studio .NET.
Połowu wyjątek w kodzie języka Visual Basic
W tym przykładzie kodu pokazano, jak użyć Try…Catch…Finally Visual Basic instrukcja Aby przechwytywać wyjątków obiektów SMO. Wszystkie wyjątki obiekty SMO typ SmoException i są wyświetlane w odwołaniu do obiektów SMO.Pokaż katalog główny błędu jest wyświetlany sekwencji wewnętrzne wyjątki.Aby uzyskać więcej informacji, zobacz temat Visual Basic Dokumentacja systemu .NET.
Połowu wyjątek w środowisku Visual C#
W tym przykładzie kodu pokazano, jak użyć Try…Catch…Finally Program Visual C# instrukcję przechwytywać wyjątków obiektów SMO. Wszystkie wyjątki obiekty SMO typ SmoException i są wyświetlane w odwołaniu do obiektów SMO.Pokaż katalog główny błędu jest wyświetlany sekwencji wewnętrzne wyjątki.Aby uzyskać więcej informacji zobacz dokumentację programu Visual C#.
{
//This sample requires the Microsoft.SqlServer.Management.Smo.Agent namespace to be included.
//Connect to the local, default instance of SQL Server.
Server srv;
srv = new Server();
//Define an Operator object variable by supplying the parent SQL Agent and the name arguments in the constructor.
//Note that the Operator type requires [] parenthesis to differentiate it from a Visual Basic key word.
op = new Operator(srv.JobServer, "Test_Operator");
op.Create();
//Start exception handling.
try {
//Create the operator again to cause an SMO exception.
OperatorCategory opx;
opx = new OperatorCategory(srv.JobServer, "Test_Operator");
opx.Create();
}
//Catch the SMO exception
catch (SmoException smoex) {
Console.WriteLine("This is an SMO Exception");
//Display the SMO exception message.
Console.WriteLine(smoex.Message);
//Display the sequence of non-SMO exceptions that caused the SMO exception.
Exception ex;
ex = smoex.InnerException;
while (!object.ReferenceEquals(ex.InnerException, (null))) {
Console.WriteLine(ex.InnerException.Message);
ex = ex.InnerException;
}
}
//Catch other non-SMO exceptions.
catch (Exception ex) {
Console.WriteLine("This is not an SMO exception.");
}
}