Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-database in Microsoft Fabric Preview
In beheerde code worden uitzonderingen gegenereerd wanneer er een fout optreedt. SMO-methoden en -eigenschappen rapporteren geen succes of mislukking in de retourwaarde. In plaats daarvan kunnen uitzonderingen worden opgevangen en verwerkt door een uitzonderingshandler.
Er bestaan verschillende uitzonderingsklassen in de SMO. Informatie over de uitzondering kan worden geëxtraheerd uit de uitzonderingseigenschappen, zoals de eigenschap Bericht die een sms-bericht over de uitzondering geeft.
De instructies voor het afhandelen van uitzonderingen zijn specifiek voor de programmeertaal. In Microsoft Visual Basic is het bijvoorbeeld de Catch-instructie .
Inner Exceptions
Uitzonderingen kunnen algemeen of specifiek zijn. Algemene uitzonderingen bevatten een set specifieke uitzonderingen. Verschillende Catch-instructies kunnen worden gebruikt om verwachte fouten af te handelen en de resterende fouten door te laten vallen tot algemene code voor het afhandelen van uitzonderingen. Uitzonderingen treden vaak op in een trapsgewijze volgorde. Vaak is een SMO-uitzondering mogelijk veroorzaakt door een SQL-uitzondering. U kunt dit detecteren door achtereenvolgens de eigenschap InnerException te gebruiken om de oorspronkelijke uitzondering te bepalen die de uiteindelijke uitzondering op het hoogste niveau heeft veroorzaakt.
Note
De SQLException-uitzondering wordt gedeclareerd in de naamruimte System.Data.SqlClient .
              
              
            
In het diagram ziet u de stroom van uitzonderingen via de lagen van de toepassing.
Example
Als u een codevoorbeeld wilt gebruiken dat is opgegeven, moet u de programmeeromgeving, de programmeersjabloon en de programmeertaal kiezen waarin u uw toepassing wilt maken. Zie Een Visual C# SMO-project maken in Visual Studio .NETvoor meer informatie.
Een uitzondering vangen in Visual Basic
In dit codevoorbeeld ziet u hoe u het proberen kunt gebruiken... Vangen... Ten slottevisual Basic-instructie om een SMO-uitzondering te ondervangen. Alle SMO-uitzonderingen hebben het type SmoException en worden vermeld in de SMO-verwijzing. De reeks interne uitzonderingen wordt weergegeven om de hoofdmap van de fout weer te geven. Zie de Visual Basic .NET-documentatie voor meer informatie.
'This sample requires the Microsoft.SqlServer.Management.Smo.Agent namespace is included.
'Connect to the local, default instance of SQL Server.
Dim srv As Server
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.
Dim op As [Operator]
op = New [Operator](srv.JobServer, "Test_Operator")
op.Create()
'Start exception handling.
Try
    'Create the operator again to cause an SMO exception.
    Dim opx As OperatorCategory
    opx = New OperatorCategory(srv.JobServer, "Test_Operator")
    opx.Create()
    'Catch the SMO exception
Catch smoex As SmoException
    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.
    Dim ex As Exception
    ex = smoex.InnerException
    Do While ex.InnerException IsNot (Nothing)
        Console.WriteLine(ex.InnerException.Message)
        ex = ex.InnerException
    Loop
    'Catch other non-SMO exceptions.
Catch ex As Exception
    Console.WriteLine("This is not an SMO exception.")
End Try
Een uitzondering in Visual C vangen#
In dit codevoorbeeld ziet u hoe u het proberen kunt gebruiken... Vangen... Ten slotte visual C#-instructie om een SMO-uitzondering te vangen. Alle SMO-uitzonderingen hebben het type SmoException en worden vermeld in de SMO-verwijzing. De reeks interne uitzonderingen wordt weergegeven om de hoofdmap van de fout weer te geven. Zie de Visual C#-documentatie voor meer informatie.
{   
//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.");   
}   
}