Bagaimana menangkap pengecualian dalam Visual Basic 2005 atau Visual Basic.NET

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 301283 - Melihat produk di mana artikel ini berlaku.
Microsoft Visual C# 2005 dan Microsoft Visual C#.NET versi artikel ini, lihat 308345.

Untuk versi Microsoft Visual Basic 6.0 artikel ini, lihat 191474.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Penangkapan dan berurusan dengan pengecualian adalah standar tugas pemrograman. Artikel ini menunjukkan bagaimana untuk menggunakan coba-menangkap-akhirnya blok untuk menangkap pengecualian. A coba-menangkap-akhirnya blok adalah "pembungkus" yang Anda tempatkan di sekeliling kode di mana ada kemungkinan pengecualian.

A coba-menangkap-akhirnya blok terdiri dari bagian berikut:
  • Kode yang mungkin melemparkan pengecualian ditempatkan di dalam coba blok.
  • Jika pengecualian dibuang, menangkap blok dimasukkan, dan program dapat melakukan yang sesuai operasi untuk memulihkan atau memperingatkan pengguna.
  • Kode akhirnya blok selalu dijalankan dan dapat melakukan pembersihan setelah pengecualian telah terjadi. The akhirnya blok opsional.

Persyaratan

Daftar berikut menguraikan fitur perangkat keras, perangkat lunak, jaringan infrastruktur, dan paket layanan yang Anda butuhkan:
  • Microsoft Windows Server 2003, Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, atau Microsoft Windows NT 4.0 Server
  • Microsoft Visual Basic 2005 atau Microsoft Visual Basic.NET

Contoh langkah demi langkah

  1. Membuat aplikasi konsol baru dalam Visual Basic 2005 atau dalam Visual Basic.NET.
  2. Dalam prosedur Sub utama, Sisipkan kode sampel yang berikut. Sampel menyatakan dan menginisialisasi tiga variabel, mana inisialisasi "k" menyebabkan kesalahan.
    ' This code generates an exception.
    	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")
    	Console.WriteLine()
    
    	Dim i as Integer = 10
    	Dim j as Integer = 0
    	Dim k As Integer = i/j ' Error on this line.
    					
  3. Tekan tombol F5 untuk melihat pengecualian.
  4. Bungkus mencoba menangkap pernyataan di seluruh kode untuk menangkap kesalahan. Berikut kode menangkap semua kesalahan yang dilemparkan ke dalam kode dan menampilkan generik pesan galat. Ganti kode dalam prosedur Sub utama dengan berikut kode.
    ' This code shows how to catch an exception.
    Try
    	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")
    	Console.WriteLine()
    
    	Dim i as Integer = 10
    	Dim j as Integer = 0
    	Dim k As Integer = i/j ' Error on this line. Control jumps to the catch block.
    Catch
    	Console.WriteLine("An error occurred.")
    End Try
  5. Tekan CTRL + F5 untuk menjalankan projek. Perhatikan bahwa kesalahan pesan dari menangkap blok ditampilkan.
  6. Jika beberapa pembersihan atau pasca-pengolahan yang perlu dilakukan Terlepas dari kesalahan, menggunakan akhirnya bagian dari coba-menangkap-akhirnya pernyataan. Kode akhirnya bagian dari pernyataan selalu dilaksanakan, terlepas dari pengecualian. Kode berikut Menampilkan "pernyataan ini selalu dicetak" di konsol, bahkan jika tidak ada kesalahan terjadi. Ganti kode Sub utama dengan kode berikut.
    ' This code shows how to catch an exception.	
    Try
    	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")
    	Console.WriteLine()
    
    	Dim i as Integer = 10
    	Dim j as Integer = 0
    	Dim k As Integer = i/j ' Error on this line. Control jumps to the catch block.
    
    Catch
    	Console.WriteLine("An error occurred.")
    Finally   ' This section is performed regardless of the above processing.
    	Console.WriteLine()
    	Console.WriteLine("This statement is always printed")
    End Try
    					
  7. Tekan CTRL + F5 untuk menjalankan projek.
  8. Anda dapat menggunakan pengecualian objek dengan menangkap pernyataan untuk mengambil rincian tentang pengecualian. Pengecualian memiliki sejumlah properti yang dapat membantu Anda mengidentifikasi membantu, sumber, atau bahkan tumpukan informasi tentang pengecualian. Informasi ini dapat sangat berguna untuk melacak penyebab asli pengecualian atau memberikan yang lebih baik penjelasan dari sumbernya. Contoh berikut menangkap pengecualian dan memberikan pesan galat tertentu. Seperti sebelumnya, Anda dapat mengganti kode dalam Sub utama prosedur dengan kode berikut.

    Contoh 1
    ' This code shows how to catch an exception.
    Try
    	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")
    	Console.WriteLine()
    
    	Dim i as Integer = 10
    	Dim j as Integer = 0
    	Dim k As Integer = i/j ' Error on this line. Control jumps to the catch block.
    
    Catch e As Exception  ' Perform code that deals with the exception
                          ' or informs the user what occurred.
    	Console.WriteLine("The following error occurred:")
    	Console.WriteLine(e.ToString())  ' Print the error message to the user.
    
    Finally   ' This section is performed regardless of the above processing.
    	Console.WriteLine()
    	Console.WriteLine("This statement is always printed")
    End Try
    					
    Contoh 2
    ' This code shows how to catch an exception.
    Try
    	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")
    	Console.WriteLine()
    
    	Dim i as Integer = 10
    	Dim j as Integer = 0
    	Dim k As Integer = i/j ' Error on this line. Control jumps to the catch block.
    
    Catch e As Exception  ' Perform code that deals with the exception
                          ' or informs the user what occurred.
            Console.WriteLine("The following error occurred:")
            Console.WriteLine( e.Message )     ' Print the error message.
            Console.WriteLine( e.Source )      ' Name of application or object
                                               ' that caused the error
            Console.WriteLine( e.StackTrace )  ' String that contains the stack 
                                               ' trace for this exception
    Finally   ' This section is performed regardless of the above processing.
            Console.WriteLine()
            Console.WriteLine("This statement is always printed")
    End Try
    					
  9. Sampai titik ini, Anda telah berurusan dengan kasus tertentu pengecualian non-spesifik. Namun, jika Anda tahu di muka apa jenis pengecualian akan terjadi, Anda dapat menangkap pengecualian diantisipasi dan proses sesuai. Anda dapat menggunakan beberapa Menangkap blok untuk menangkap pengecualian lainnya dan berurusan dengan mereka juga. Contoh berikut menunjukkan ini.
    Module Module1
    Sub Main()
    
    ' Attempt to do some file processing.
    ' This can cause a number of potential exceptions.
    ' Note that you can use the specific exceptions to get extra information about that exception,
    ' but this example focuses on showing control execution for those exceptions.
    
    Try
    	File.Create("c:/temp/test.txt")  ' Can fail for a number of reasons
    
    Catch ioe As System.IO.IOException ' This error may occur if the Temp folder does not exist.
    	Console.WriteLine("An IO error occurred. The c:\temp folder does not exist")
    
    Catch se As System.Security.SecurityException ' You do not have the appropriate permission
                                                  ' to take this action.
    	Console.WriteLine("You don't have the security permissions to take this action!")
    
    Catch e As Exception    ' Catch all other exceptions.
    	Console.WriteLine( e.ToString() )  ' Print the standard exception information.
    End Try
    End Sub
    End Module
    Karena konfigurasi komputer mungkin berbeda, sampel ini langkah mungkin atau mungkin tidak membuang pengecualian. Jika Anda ingin memaksa IO pengecualian, mengubah file path ke folder yang ada pada Anda komputer.

REFERENSI

Untuk selengkapnya, lihat Microsoft.NET Framework Software Development Kit (SDK).

Properti

ID Artikel: 301283 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Kata kunci: 
kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB301283 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:301283

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com