Fitur penanganan pengecualian bahasa C# membantu Anda menangani situasi tak terduga atau tidak biasa yang terjadi saat program Anda berjalan. Penanganan pengecualian menggunakan kata kunci try, catch, dan finally untuk mencoba operasi tertentu untuk menangani kegagalan, dan meskipun operasi ini berpotensi gagal, Anda dapat mencoba melakukannya jika Anda yakin perlu melakukan ini dan ingin membersihkan sumber daya setelahnya. Common Language Runtime (CLR), . NET Framework atau pustaka pihak ketiga atau kode aplikasi dapat menghasilkan pengecualian. Pengecualian dibuat menggunakan kata kunci lemparan. Dalam banyak kasus, pengecualian mungkin tidak dimunculkan oleh metode yang dipanggil langsung dengan kode, tetapi dengan metode lain lebih jauh ke bawah tumpukan panggilan. Dalam hal ini, CLR memperluas tumpukan untuk melihat apakah ada metode yang berisi blok tangkapan untuk jenis pengecualian tertentu, dan jika menemukan metode seperti itu, ia mengeksekusi blok tangkapan pertama yang ditemukan. Jika tidak ada blok tangkapan yang sesuai ditemukan di mana pun dalam tumpukan panggilan, proses dihentikan dan pesan ditampilkan kepada pengguna. Dalam contoh ini, metode digunakan untuk mendeteksi apakah ada situasi di mana dibagi nol; Jika ada, kesalahan tertangkap. Jika tidak ada penanganan pengecualian, program ini akan mengakhiri dan menghasilkan kesalahan "DivideByZeroException Not Handled".- class ExceptionTest
- {
- static double SafeDivision(double x, double y)
- {
- if (y == 0)
- throw new System.DivideByZeroException();
- return x / y;
- }
- static void Main()
- {
- // Input for test purposes. Change the values to see
- // exception handling behavior.
- double a = 98, b = 0;
- double result = 0;
- try
- {
- result = SafeDivision(a, b);
- Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
- }
- catch (DivideByZeroException e)
- {
- Console.WriteLine("Attempted divide by zero.");
- }
- }
- }
Salin kode
|