Coba ... Tangkap ... Akhirnya, Lempar, Pengecualian Buatan Pengguna di VB.Net

Daftar Isi:

Anonim

Apa itu Pengecualian?

Pengecualian mengacu pada masalah yang muncul selama eksekusi program. Itu disebabkan oleh keadaan yang tidak terduga. Contoh yang bagus adalah saat Anda melakukan operasi pembagian, lalu Anda membaginya dengan nol (0). Pengecualian akan dimunculkan.

Dalam Tutorial Visual Basic ini, Anda akan mempelajari:

  • Apa itu Pengecualian?
  • Apa itu Penanganan Pengecualian?
  • Sintaks Try / Catch
  • Contoh untuk Menangani Pengecualian
  • Pengecualian Buatan Pengguna
  • Benda Melempar

Apa itu Penanganan Pengecualian?

Dengan pengecualian, Anda dapat mentransfer kontrol program dari satu bagian ke bagian lain. Di VB.NET, pengecualian ditangani menggunakan 4 kata kunci berikut:

Kata kunci Detail
Mencoba Pekerjaan blok Coba adalah mengidentifikasi blok kode yang pengecualian spesifiknya akan diaktifkan. Ini harus diikuti oleh blok tangkapan.
Menangkap Penangkapan Pengecualian dilakukan di blok ini. Ini adalah penangan pengecualian di mana Pengecualian ditangani.
Akhirnya Gunakan blok Akhirnya untuk menjalankan sekumpulan pernyataan apakah pengecualian telah terjadi atau tidak.
Melemparkan Pengecualian diberikan setelah terjadinya masalah. Ini adalah hasil kerja dari kata kunci Throw.

Sintaks Try / Catch

Pernyataan Try / Catch mengambil sintaks yang diberikan di bawah ini:

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 Try / Catch harus mengelilingi kode yang dapat menimbulkan pengecualian. Kode ini dikenal sebagai kode yang dilindungi. Anda dapat menggunakan beberapa pernyataan catch saat Anda perlu menangkap berbagai jenis pengecualian.

Contoh untuk Menangani Pengecualian

Dengan pernyataan Coba / Tangkap, Anda dapat memisahkan kode program biasa Anda dari Sistem penanganan kesalahan. Mari kita tunjukkan bagaimana menangani pengecualian menggunakan kata kunci Coba, Tangkap, dan Akhirnya.

Langkah 1) Buat aplikasi konsol baru.

Langkah 2) Gunakan kode 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 tombol Start dari toolbar untuk menjalankan kode. Anda harus mendapatkan keluaran berikut:

Berikut tangkapan layar kodenya:

Penjelasan Kode:

  1. Membuat modul bernama Module1.
  2. Membuat sub-prosedur bernama divisionFunction dengan dua argumen integer n1 dan n2. ByVal adalah kata kunci VB.NET yang menyatakan bahwa nilai argumen akan diteruskan oleh nilai.
  3. Membuat variabel integer bernama answer.
  4. Mulai dari blok Coba / Tangkap. Kami perlu mengelilingi kode yang kami curigai dapat menimbulkan pengecualian dengan blok ini.
  5. Melakukan operasi pembagian antara nilai variabel n1 dan n2. Hasil dari operasi pembagian diberikan ke jawaban variabel. Kode ini dapat menimbulkan pengecualian, misalnya, ketika kita membagi angka dengan nol, maka kita telah mengelilinginya dengan blok Coba / Tangkap.
  6. Menangkap Pengecualian bernama DivideByZeroException dan menetapkan pesan pengecualian yang dibuat ke ex.
  7. Mencetak beberapa teks di konsol untuk memberi tahu pengguna tentang jenis / nama Pengecualian yang dimunculkan.
  8. Blok Akhirnya. Ini akan mengeksekusi apakah pengecualian tertangkap atau tidak.
  9. Mencetak beberapa teks di konsol yang menunjukkan hasil operasi pembagian.
  10. Akhir dari blok Coba, yaitu akhir dari kode penanganan kesalahan.
  11. Akhir dari sub-prosedur divisiFungsi.
  12. Mulai dari sub-prosedur utama.
  13. Memanggil / memanggil sub-prosedur divisionFunction. Nilai dari dua argumen bilangan bulat diteruskan di sini. Nilai n1 = 4 dan n2 = 0. Ini berarti operasi pembagian akan menjadi 4 \ 0, yaitu n1 \ n2.
  14. Menjeda jendela konsol menunggu pengguna mengambil tindakan untuk menutupnya.
  15. Akhir dari sub-prosedur utama.
  16. Akhir dari modul.

Pengecualian Buatan Pengguna

VB.NET memungkinkan Anda untuk menentukan pengecualian Anda sendiri. Anda bisa mendapatkan kelas pengecualian yang ditentukan pengguna dari kelas ApplicationException. Mari kita tunjukkan ini dengan sebuah contoh:

Langkah 1) Buat aplikasi konsol baru.

Langkah 2) Gunakan kode 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 tombol Start dari bilah atas untuk menjalankan kode. Anda harus mendapatkan keluaran berikut:

Berikut tangkapan layar kodenya:

Penjelasan Kode:

  1. Membuat modul bernama Module1.
  2. Membuat kelas pengecualian bernama HeightIsZeroException. Kelas mewarisi semua kelas ApplicationException.
  3. Membuat sub-prosedur bernama New. Ini akan mengambil satu argumen string bernama teks.
  4. Memanggil konstruktor kelas dasar dan meneruskan ke argumen di atas.
  5. Akhir dari sub-prosedur baru.
  6. Akhir dari kelas HeightIsZeroException.
  7. Membuat kelas bernama Tinggi. Pengubah akses publiknya adalah Publik, artinya itu akan dapat diakses publik.
  8. Membuat variabel integer bernama Height dan menginisialisasi nilainya menjadi 0.
  9. Membuat sub-prosedur bernama showHeight ().
  10. Memeriksa kapan nilai variabel Tinggi adalah 0. Kita telah menggunakan kondisi If… Then.
  11. Untuk Melempar HeightIsZeroException jika kondisi di atas benar. Pesan Zero Height Found akan ditampilkan saat Pengecualian ini dilemparkan.
  12. Bagian Lain untuk dieksekusi ketika kondisi If tidak benar.
  13. Pesan untuk dicetak di konsol yang menunjukkan Tinggi bila bukan 0.
  14. Akhir dari kondisi If.
  15. Akhir subprocedure showHeight ().
  16. Akhir dari kelas Tinggi.
  17. Mulai dari sub-prosedur utama.
  18. Membuat sebuah objek bernama Tinggi sebagai turunan dari kelas Tinggi.
  19. Mulai dari blok penanganan pengecualian.
  20. Memanggil sub-prosedur showHeight () yang ditentukan di kelas Tinggi. Kami telah menggunakan objek dari kelas ini untuk mengakses metode ini. Baris ini dapat menyebabkan pengecualian. Oleh karena itu, kami telah mengelilinginya dengan kode penanganan pengecualian.
  21. Menangkap Pengecualian HeightIsZeroException sebagai objek ex jika itu terjadi.
  22. Pesan untuk dicetak di konsol saat HeightIsZeroException tertangkap.
  23. Akhir dari blok penanganan pengecualian.
  24. Jeda jendela konsol menunggu pengguna mengambil tindakan untuk menutupnya.
  25. Akhir dari sub-prosedur utama.
  26. Akhir dari modul.

Benda Melempar

Dalam penanganan pengecualian, Anda dapat memilih untuk melempar sebuah objek. Namun, objek tersebut harus diturunkan dari Sistem. Exceptionclass, secara langsung atau tidak langsung. Sebagai contoh:

Langkah 1) Buat aplikasi konsol baru.

Langkah 2) Gunakan kode 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 tombol Start dari bilah atas untuk menjalankan kode. Anda harus mendapatkan yang berikut:

Berikut tangkapan layar kodenya:

Penjelasan Kode:

  1. Membuat modul bernama Module1.
  2. Mulai dari sub-prosedur utama.
  3. Mulai dari kode penanganan kesalahan.
  4. Melempar objek pengecualian. Kode ini dapat menghasilkan pengecualian karena itu kami telah mengelilinginya dengan blok Coba / Tangkap.
  5. Menangkap pengecualian sebagai objek ex jika garis memunculkan pengecualian.
  6. Mencetak pesan pengecualian di konsol jika itu terjadi.
  7. Blok Akhirnya untuk menjalankan apakah pengecualian tertangkap atau tidak.
  8. Pesan untuk dicetak di konsol ketika blok Akhirnya dijalankan.
  9. Akhir dari kode penanganan pengecualian.
  10. Jeda konsol untuk beberapa saat menunggu pengguna mengambil tindakan untuk menutupnya.
  11. Akhir dari sub-prosedur utama.
  12. Akhir dari modul.

Ringkasan

  • Pengecualian mengacu pada masalah yang muncul selama eksekusi program yang disebabkan oleh keadaan yang tidak terduga.
  • Jika Anda mencurigai bahwa beberapa kode akan menghasilkan pengecualian, kelilingi dengan blok Coba / Tangkap.
  • Blok Akhirnya muncul setelah blok Coba / Tangkap dan mengeksekusi apakah pengecualian ditangkap atau tidak.
  • VB.NET memungkinkan kita membuat pengecualian khusus.