Pengendalian Pengecualian dalam C#
Kami tidak boleh mengharapkan pengguna memasukkan butiran yang betul sepanjang masa. Walau bagaimanapun, jika input yang salah atau tidak dijangka tidak dikendalikan dengan betul, keseluruhan kod boleh ranap atau pergi dengan gelung yang tidak berkesudahan. Ini adalah masalah yang bermula semasa melaksanakan program disebabkan oleh keadaan atau input yang tidak dijangka. Sebagai contoh, hasilnya adalah tidak terhingga apabila nombor dibahagi dengan sifar. Pengendalian pengecualian ialah cara untuk memberitahu program untuk beralih ke blok kod seterusnya atau memberikan hasil yang ditentukan dalam situasi tertentu.
Kata kunci Pengendalian Pengecualian dalam C#
Pengendalian pengecualian boleh dilakukan dengan empat kata kunci di bawah.
- Cuba: Blok cuba mentakrifkan jenis pengecualian yang akan dikendalikan. Di sinilah pengecualian akan ditangkap. Ia akan sentiasa berpasangan dengan satu blok tangkapan.
- Tangkapan: Setelah blok cuba menentukan jenis dan mendapat satu pengecualian semasa pelaksanaan, blok tangkapan akan mengesahkan jenis pengendali pengecualian yang akan digunakan. Blok ini juga akan menentukan di mana pengecualian itu akan dikendalikan. Seperti yang ditunjukkan oleh kata kunci, ia seperti menangkap pengecualian.
- Akhir sekali: Blok ini mempunyai beberapa set pernyataan. Tanpa mengira pengecualian yang dilemparkan, pernyataan yang ditakrifkan dalam blok akhir akan sentiasa dilaksanakan.
- Balingan: Apabila pengecualian ditangkap, kata kunci lontaran digunakan untuk menunjukkan pengecualian yang ditangkap.
Anda boleh menyimpan perisian atau kod anda daripada banyak kerumitan dengan menentukan pengendali pengecualian. Amalan yang baik untuk menentukan pengendali pengecualian di mana-mana sahaja terdapat kemungkinan pengecualian.
Sintaks:
Apabila pengecualian dinaikkan, kaedah yang diisytiharkan menangkap pengecualian dengan bantuan kata kunci try and catch. Kita perlu meletakkan gabungan ini pada bahagian kod, pengecualian dijangka. Kod ini dipanggil kod dilindungi. Anda juga boleh menentukan lebih daripada satu kata kunci tangkapan untuk kata kunci satu percubaan. Pada penghujung kandungan, bahagian akhir kod akan dilaksanakan dan itu akan dilaksanakan sama ada pengecualian dinaikkan atau tidak.
Kod:
try { //Define the statement that could cause an exception. } Catch(ExceptionName secondException) { //error handling code } Finally { //define the statement that will be executed }
Bagaimanakah Pengendalian Pengecualian berfungsi dalam C#?
Terdapat banyak kelas yang dipratentukan untuk mengendalikan pengecualian. Blok cuba meliputi bahagian kod yang mungkin membuang pengecualian dan menangkap mengesahkan perkara yang perlu dilakukan apabila pengecualian ditangkap. Bahagian akhir blok mentakrifkan perkara yang mesti dilakukan sama ada pengecualian dikesan atau tidak dan bahagian lontaran memaparkan mesej jika ditetapkan.
Kelas Pengecualian dalam C#
Terdapat banyak kelas yang tersedia dalam C# di mana pengecualian boleh diwakili. Semua kelas berasal dari kelas utama yang dipanggil System. Pengecualian. Terdapat beberapa kelas yang juga berasal daripada System.ApplicationException dan System.SystemException.
Contoh Kelas Pengecualian dalam C#
Pengecualian diperoleh daripada Sistem. Kelas pengecualian. Berikut ialah senarai kelas pengecualian biasa C#.
|
Perihalan | ||||||||||||
System.DivideByZeroException | mengendalikan ralat apabila cuba membahagikan nombor dengan sifar. | ||||||||||||
System.NullReferenceException | mengendalikan ralat apabila merujuk kepada objek yang tidak wujud. | ||||||||||||
System.InvalidCastException | mengendalikan ralat apabila mencuba penghantaran tidak sah. | ||||||||||||
System.IO.IOException | Semua ralat input-output dikendalikan. | ||||||||||||
System.FieldAccessException | Apabila cuba mengakses kelas yang tidak dibenarkan |
1. C# try/catch
Exception handling is done by try and catches block in C#. The try block in C# is used to place the code that may throw an exception. The exception is handled by the catch block.
C# example without try/catch
Code:
using System; public class exceptionhandling { public static void Main(string[] args) { int a = 10; int b = 0; int x = a/b; //we are trying to divide the number with zero Console.WriteLine("other part of the code"); } }
Output:
C# try/catch example
Code
using System; public class ExExample { public static void Main(string[] args) { try { int a = 10; int b = 0; int x = a / b; } catch (Exception e) { Console.WriteLine(e); } Console.WriteLine("Rest of the code"); } }
Output:
Use of Exception Classes in C# finally
It will show you the message regardless the exception is caught.
Code
using System; public class Exceptionhandling { public static void Main(string[] args) { try { int x = 5; int y= 0; int z = x / y; } catch (Exception obj) { Console.WriteLine(obj); } finally { Console.WriteLine("Time to execute finally block"); } Console.WriteLine("Other part of the code"); } }
Output:
1. C# finally example if Exception is not handled
Code
using System; public class ExceptionHandling { public static void Main(string[] args) { try { int p = 6; int q = 0; int r= p/q; } catch (NullReferenceException nullObject) { Console.WriteLine(nullObject); } finally { Console.WriteLine("Exception not handled. Now Finally section will be executed"); } Console.WriteLine("Other part of the code"); } }
Output:
2. C# user-defined Exception
The not only system defined, but we can also set our own exception. However, we need to inherit the code in order to get this done.
Code
using System; public class userdefinedInvalidAge : Exception { public userdefinedInvalidAge (String errorMessage) : base(errorMessage) { } } public class TestUserDefinedException { static void validateAge(int age) { if (age < 18) { throw new userdefinedInvalidAge("Sorry, Age must be greater than 18"); } } public static void Main(string[] args) { try { validateAge(12); } catch (userdefinedInvalidAge e) { Console.WriteLine(e); } Console.WriteLine("Rest of the code"); } }
Output:
Conclusion
At any place you think it might generate an error because of anything, exception handler should be used. It is essential that you use a catch statement and start from generic to a specific exception. Your entire software or code is at risk without proper exception handler.
Atas ialah kandungan terperinci Pengendalian Pengecualian dalam C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)
