Bagikan melalui


Bagaimana Pengecualian Ditangani

Ketika pengecualian terjadi dalam cakupan, setiap utas logis eksekusi dalam cakupan dihentikan. Mesin runtime mencoba menemukan handler pengecualian untuk pengecualian yang sesuai.

Jika handler pengecualian ditemukan yang cocok dengan jenis tertentu atau salah satu jenis dasarnya, kontrol meneruskan ke handler tersebut dan kodenya berjalan.

Catatan

Jenis pengecualian harus berasal dari System.Exception.

Penangan pengecualian berurutan; artinya, mereka akan diperiksa untuk melihat apakah mereka dapat menangani pengecualian tertentu. Agar berfungsi dengan baik, penangan pengecualian harus ditempatkan sehingga penanganan jenis yang lebih spesifik menjadi yang pertama, diikuti oleh penanganan jenis yang lebih umum. Ini agar Anda dapat memastikan bahwa pengecualian dari jenis tertentu ditangani oleh handler yang sesuai, bukan yang dirancang untuk menangani jenis dasar.

Jika handler pengecualian selesai secara normal, kontrol akan diteruskan ke cakupan sekitarnya. Jika tidak ada pengecualian yang dilemparkan dalam cakupan sekitarnya, orkestrasi terus berjalan. Jika handler pengecualian berakhir dengan pernyataan lemparan, pengecualian asli dilemparkan lagi agar cakupan di sekitarnya ditindaklanjuti, kecuali Anda menentukan pengecualian berbeda yang ingin Anda lemparkan.

Jika tidak ada handler pengecualian yang dapat ditemukan, handler pengecualian default akan berjalan. Penangan pengecualian default untuk cakupan akan memanggil kompensasi untuk setiap transaksi berlapis, lalu melemparkan pengecualian lagi. Jika Anda menulis handler pengecualian Anda sendiri, Anda dapat memilih untuk tidak menyebarluaskan pengecualian.

Lihat juga

Pengecualian