Apa itu Pengecualian?
Pengecualian merujuk kepada masalah yang timbul semasa pelaksanaan program. Ini disebabkan oleh keadaan yang tidak dijangka. Contoh yang baik adalah ketika anda melakukan operasi pembahagian, dan kemudian anda membahagi dengan sifar (0). Pengecualian akan dikemukakan.
Dalam Tutorial Visual Basic ini, anda akan belajar:
- Apa itu Pengecualian?
- Apakah Pengendalian Pengecualian?
- Sintaks Cuba / Tangkap
- Contoh untuk Menangani Pengecualian
- Pengecualian Yang Ditetapkan Pengguna
- Objek Balingan
Apakah Pengendalian Pengecualian?
Dengan pengecualian, anda boleh memindahkan kawalan program dari satu bahagian ke bahagian lain. Di VB.NET, pengecualian dikendalikan menggunakan 4 kata kunci berikut:
Kata kunci | Perincian |
Cuba | Kerja blok Try adalah untuk mengenal pasti blok kod yang pengecualian khusus akan diaktifkan. Ia harus diikuti dengan blok tangkapan. |
Tangkap | Penangkapan Pengecualian dilakukan di blok ini. Ini adalah pengendali pengecualian di mana Pengecualian ditangani. |
Akhirnya | Gunakan blok Akhirnya untuk menjalankan sekumpulan pernyataan sama ada pengecualian telah berlaku atau tidak. |
Baling | Pengecualian dilemparkan setelah berlakunya masalah. Ini adalah karya kata kunci Lempar. |
Sintaks Cuba / Tangkap
Pernyataan Try / Catch mengambil sintaks yang diberikan di bawah:
Try[ try_Statement(s) ][ Exit Try ][ Catch [ exception_name [ As type ] ] [ When expression ][ catch_Statement(s) ][ Exit Try ] ][ Catch… ][ Finally[ finally_Statement(s) ] ]End Try
Blok Cuba / Tangkap harus mengelilingi kod yang mungkin menimbulkan pengecualian. Kod ini dikenali sebagai kod terlindung. Anda boleh menggunakan beberapa pernyataan tangkapan apabila anda perlu mendapatkan pelbagai jenis pengecualian.
Contoh untuk Menangani Pengecualian
Dengan pernyataan Cuba / Tangkap, anda boleh memisahkan kod program biasa anda dari Sistem pengendalian ralat. Mari kita tunjukkan cara menangani pengecualian menggunakan kata kunci Cuba, Tangkap, dan Akhirnya.
Langkah 1) Buat aplikasi konsol baru.
Langkah 2) Gunakan kod ini:
Module Module1Sub divisionFunction(ByVal n1 As Integer, ByVal n2 As Integer)Dim answer As IntegerTryanswer = n1 \ n2Catch ex As DivideByZeroExceptionConsole.WriteLine("Exception: {0}", ex)FinallyConsole.WriteLine("Answer is: {0}", answer)End TryEnd SubSub Main()divisionFunction(4, 0)Console.ReadKey()End SubEnd Module
Langkah 3) Klik butang Mula dari bar alat untuk melaksanakan kod. Anda harus mendapat output berikut:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Membuat modul bernama Module1.
- Membuat sub-prosedur bernama divisiFungsi dengan dua argumen integer n1 dan n2. ByVal adalah kata kunci VB.NET yang menyatakan bahawa nilai-nilai argumen akan diteruskan dengan nilai.
- Membuat pemboleh ubah integer bernama jawapan.
- Permulaan blok Cuba / Tangkap. Kita perlu mengekodkan kod yang kita rasa dapat menimbulkan pengecualian dengan blok ini.
- Melakukan operasi pembahagian antara nilai pemboleh ubah n1 dan n2. Hasil operasi pembahagian diberikan kepada jawapan pemboleh ubah. Kod ini dapat menimbulkan pengecualian, misalnya, ketika kita membagi nombor dengan sifar, oleh itu kita telah mengelilinginya dengan blok Try / Catch.
- Menangkap Pengecualian bernama DivideByZeroException dan memberikan mesej pengecualian yang dihasilkan kepada bekas.
- Mencetak beberapa teks di konsol untuk memberitahu pengguna tentang jenis / nama Pengecualian yang dibangkitkan.
- Blok Akhirnya. Ini akan melaksanakan sama ada pengecualian ditangkap atau tidak.
- Mencetak beberapa teks pada konsol yang menunjukkan hasil operasi pembahagian.
- Akhir blok Cuba, iaitu akhir kod pengendalian ralat.
- Sub-prosedur akhir pembahagianFungsi.
- Mulakan sub-prosedur utama.
- Memanggil / memanggil sub-prosedur bahagianFungsi. Nilai dua argumen integer dilampirkan di sini. Nilai n1 = 4 dan n2 = 0. Ini bermaksud operasi pembahagian akan menjadi 4 \ 0, iaitu, n1 \ n2.
- Menjeda tetingkap konsol menunggu pengguna mengambil tindakan untuk menutupnya.
- Akhir sub-prosedur utama.
- Akhir modul.
Pengecualian Yang Ditetapkan Pengguna
VB.NET membolehkan anda menentukan pengecualian anda sendiri. Anda boleh mendapatkan kelas pengecualian yang ditentukan pengguna dari kelas ApplicationException. Mari kita tunjukkan ini dengan contoh:
Langkah 1) Buat aplikasi konsol baru.
Langkah 2) Gunakan kod berikut:
Module Module1Public Class HeightIsZeroException : Inherits ApplicationExceptionPublic Sub New(ByVal text As String)MyBase.New(text)End SubEnd ClassPublic Class HeightDim height As Integer = 0Sub showHeight()If (height = 0) ThenThrow (New HeightIsZeroException("Zero Height found"))ElseConsole.WriteLine("Height is: {0}", height)End IfEnd SubEnd ClassSub Main()Dim hght As Height = New Height()Tryhght.showHeight()Catch ex As HeightIsZeroExceptionConsole.WriteLine("HeightIsZeroException: {0}", ex.Message)End TryConsole.ReadKey()End SubEnd Module
Langkah 3) Klik butang Mula dari bar atas untuk melaksanakan kod. Anda harus mendapat output berikut:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Membuat modul bernama Module1.
- Membuat kelas pengecualian bernama HeightIsZeroException. Kelas mewarisi semua kelas ApplicationException.
- Membuat sub-prosedur bernama Baru. Ia akan mengambil satu argumen rentetan bernama teks.
- Memanggil pembina kelas asas dan menyampaikannya hujah di atas.
- Tamat sub-prosedur Baru.
- Tamat kelas HeightIsZeroException.
- Membuat kelas bernama Height. Pengubah akses awamnya adalah Umum, yang bermaksud bahawa ia dapat diakses secara terbuka.
- Membuat pembolehubah integer bernama Height dan memulakan nilai ke 0.
- Membuat sub-prosedur bernama showHeight ().
- Memeriksa bila nilai pemboleh ubah Tinggi adalah 0. Kami telah menggunakan syarat Jika… Kemudian.
- Untuk Membuang Pengecualian HeightIsZero jika keadaan di atas adalah benar. Mesej Zero Height Found akan ditunjukkan semasa Pengecualian ini dilemparkan.
- Bahagian Lain yang akan dilaksanakan apabila keadaan If tidak benar.
- Mesej untuk dicetak di konsol menunjukkan Ketinggian apabila bukan 0.
- Akhir keadaan If.
- Tamat persembahan subprosedur ().
- Akhir kelas Tinggi.
- Mulakan sub-prosedur utama.
- Membuat objek bernama Height sebagai contoh kelas Height.
- Permulaan blok pengendalian pengecualian.
- Memohon sub-prosedur showHeight () yang ditentukan dalam kelas Height. Kami telah menggunakan objek kelas ini untuk mengakses kaedah ini. Garis ini boleh menyebabkan pengecualian. Oleh itu, kami telah mengelilinginya dengan kod pengendalian pengecualian.
- Menangkap Pengecualian HeightIsZeroException sebagai objek ex sekiranya berlaku.
- Mesej untuk dicetak pada konsol ketika HeightIsZeroException ditangkap.
- Akhir blok pengendalian pengecualian.
- Jeda tetingkap konsol sementara menunggu pengguna mengambil tindakan untuk menutupnya.
- Akhir sub-prosedur utama.
- Akhir modul.
Objek Balingan
Dalam pengendalian pengecualian, anda boleh memilih untuk membuang objek. Walau bagaimanapun, objek mesti berasal dari Sistem. Exceptionclass, secara langsung atau tidak langsung. Sebagai contoh:
Langkah 1) Buat aplikasi konsol baru.
Langkah 2) Gunakan kod berikut:
Module Module1Sub Main()TryThrow New ApplicationException("Throwing a custom exception")Catch ex As ExceptionConsole.WriteLine(ex.Message)FinallyConsole.WriteLine("The Finally Block")End TryConsole.ReadKey()End SubEnd Module
Langkah 3) Klik butang Mula dari bar atas untuk melaksanakan kod. Anda harus mendapat yang berikut:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Membuat modul bernama Module1.
- Mulakan sub-prosedur utama.
- Permulaan kod pengendalian ralat.
- Membuang objek pengecualian. Kod ini dapat menghasilkan pengecualian, oleh itu kami telah mengelilinginya dengan blok Try / Catch.
- Menangkap pengecualian sebagai objek ex jika garis membuang pengecualian.
- Mencetak mesej pengecualian pada konsol sekiranya berlaku.
- Blok Akhirnya untuk dijalankan sama ada pengecualian ditangkap atau tidak.
- Mesej untuk dicetak pada konsol ketika blok Akhirnya dijalankan.
- Akhir kod pengendalian pengecualian.
- Jeda konsol sebentar menunggu pengguna mengambil tindakan untuk menutupnya.
- Akhir sub-prosedur utama.
- Akhir modul.
Ringkasan
- Pengecualian merujuk kepada masalah yang timbul semasa pelaksanaan program disebabkan oleh keadaan yang tidak dijangka.
- Sekiranya anda mengesyaki bahawa beberapa kod akan menghasilkan pengecualian, lampirkan dengan blok Try / Catch.
- Blok Akhirnya muncul selepas blok Try / Catch dan melaksanakan sama ada pengecualian ditangkap atau tidak.
- VB.NET membolehkan kami membuat pengecualian tersuai.