Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam kode terkelola, pengecualian dilemparkan saat kesalahan terjadi. Metode dan properti SMO tidak melaporkan keberhasilan atau kegagalan dalam nilai pengembalian. Sebaliknya, pengecualian dapat ditangkap dan ditangani oleh handler pengecualian.
Kelas pengecualian yang berbeda ada di SMO. Informasi tentang pengecualian dapat diekstrak dari properti pengecualian seperti Message properti yang memberikan pesan teks tentang pengecualian.
Pernyataan penanganan pengecualian khusus untuk bahasa pemrograman. Misalnya, di Microsoft Visual Basic, ini adalah Catch pernyataannya.
Pengecualian Dalam
Pengecualian bisa umum atau spesifik. Pengecualian umum berisi serangkaian pengecualian tertentu. Beberapa Catch pernyataan dapat digunakan untuk menangani kesalahan yang diantisipasi dan membiarkan kesalahan yang tersisa jatuh ke kode penanganan pengecualian umum. Pengecualian sering terjadi dalam urutan berjenjang. Sering kali, pengecualian SMO mungkin disebabkan oleh pengecualian SQL. Cara untuk mendeteksi hal ini adalah dengan menggunakan InnerException properti secara berturut-turut untuk menentukan pengecualian asli yang menyebabkan pengecualian tingkat atas akhir.
Nota
Pengecualian SQLException dideklarasikan dalam namespace System.Data.SqlClient .
Diagram menunjukkan alur pengecualian melalui lapisan aplikasi.
Contoh
Untuk menggunakan contoh kode apa pun yang disediakan, Anda harus memilih lingkungan pemrograman, templat pemrograman, dan bahasa pemrograman untuk membuat aplikasi Anda. Untuk informasi selengkapnya, lihat Membuat Proyek SMO Visual C# di Visual Studio .NET atau Membuat Proyek SMO Visual Basic di Visual Studio .NET.
Menangkap Pengecualian di Visual Basic
Contoh kode ini menunjukkan cara menggunakan Try...Catch...Finallypernyataan Visual Basic untuk menangkap pengecualian SMO. Semua pengecualian SMO memiliki jenis SmoException, dan tercantum dalam referensi SMO. Urutan pengecualian dalam ditampilkan untuk menampilkan akar kesalahan. Untuk informasi selengkapnya, lihat dokumentasi Visual Basic .NET.
Menangkap Pengecualian di Visual C#
Contoh kode ini menunjukkan cara menggunakan Try...Catch...Finally pernyataan Visual C# untuk menangkap pengecualian SMO. Semua pengecualian SMO memiliki jenis SmoException, dan tercantum dalam referensi SMO. Urutan pengecualian dalam ditampilkan untuk menampilkan akar kesalahan. Untuk informasi selengkapnya, lihat dokumentasi 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.");
}
}