Aracılığıyla paylaş


smo özel durumları

Yönetilen kodda, bir hata ortaya çıktığında özel durumlar atılır. smo yöntemleri ve özellikleri, başarı ya da başarısızlık dönüş değeri bildirmez. Bunun yerine, özel durumlar yakaladı ve bir özel durum işleyicisi tarafından işlenen.

Farklı özel sınıflar smo mevcut. Özel durum hakkında bilgi özel durum özellikleri gibi çıkarılan Messageözel durum hakkında bir mesaj veren özellik.

Özel durum işleme deyimleri programlama diline özgüdür. Örneğin, MicrosoftVisual Basic o Catchdeyimi.

İç istisnalar

Özel durumlar, ya da genel veya özel olabilir. Genel özel durumlar belirli istisnalar kümesini içerir. Birkaç Catchifadeleri beklenen hataları işlemek ve genel özel durum işleme kodu düşmek kalan hataları bildirmek için kullanılabilir. Özel durumlar genellikle basamaklı bir sırada ortaya çıkar. Sık sık, smo özel durum sql istisna tarafından neden olmuş. Bu algılamaya yolu InnerExceptionson, üst düzey özel duruma neden orijinal durum gittikçe belirlemek için özellik.

[!NOT]

SQLExceptionİstisna olarak ilan etti System.Data.SqlClient ad.

Özel durum düzeylerini gösteren diyagram

Diyagram uygulama katmanları özel akışını göstermektedir.

Örnek

Sunulan kod örneklerinden herhangi birini kullanmak için, programlama ortamını, programlama şablonunu ve uygulamanızı oluşturacağınız programlama dilini seçmeniz gerekecektir. Daha fazla bilgi için, bkz. Visual Studio'da Visual C# smo proje oluşturun.NET veya Visual Studio'da Visual Basic smo proje oluşturun.NET.

Visual Basic'te bir özel durum yakalama

Bu kod örneği nasıl kullanıldığını gösterir Try…Catch…Finally Visual Basicsmo özel durumu yakalamak için deyimi. Tüm smo istisnalar SmoException tipindedir ve smo başvuru listelenir. Sıra iç istisnalar hata kökünü göstermek için görüntülenir. Daha fazla bilgi için bkz: Visual Basic.net belgelerine.

'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

Bir Visual C# içinde istisnalarını

Bu kod örneği nasıl kullanıldığını gösterir Try…Catch…Finallyifadesini Visual C# smo özel durumu yakalamak için. Tüm smo istisnalar SmoException tipindedir ve smo başvuru listelenir. Sıra iç istisnalar hata kökünü göstermek için görüntülenir. Daha fazla bilgi için Visual C# belgelerine bakın.

{ 
//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."); 
} 
}

{ 
//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."); 
} 
}