[C# cơ bản] – Exception (Ngoại lệ)

1. Giới thiệu Exception

Một ứng dụng có thể gặp lỗi trong quá trình thực thi. Khi ứng dụng gặp phải một lỗi, CLR hoặc ứng dụng đó sẽ “ném” ra một ngoại lệ chứa các thông tin về lỗi đó. Trong .Net có 2 loại exceptions (ngoại lệ).

  • Ngoại lệ được tạo bởi chương trình thực thi
  • Ngoại lệ được tạo bởi CLR (Common Language Runtime)

C# gồm các lớp được xây dựng sẵn cho các trường hợp ngoại lệ. Tất cả các lớp ngoại lệ này được dẫn xuất trực tiếp hoặc gián tiếp từ lớp Exception. Có 2 lớp chính cho các ngoại lệ SystemException và ApplicationException.

  • SystemException là lớp cơ sở cho các lỗi được sinh ra bởi CLR.
  • ApplicationException là cơ sở cho các lỗi được sinh ra bởi ứng dụng, do lỗi nghiệp vụ logic của ứng dụng.
Exception hierachy in C#
Hình 1. Hệ thống cấp bậc ngoại lệ trong C#

Các bạn có thể thấy trong hình 1, lớp SystemException là lớp cơ sở cho tất cả các ngoại lệ được tạo ra trong quá trình thực thi chương trình. Để hiểu rõ hơn về các lớp ngoại lệ, chúng ta cùng làm những ví dụ nhỏ sau

Ví dụ 1: Ngoại lệ NullReferenceException xảy ra khi đối tượng chứa giá trị null

Kết quả:

NullReferenceException
Hình 2. Ngoại lệ Null Exception

Ví dụ 2: Ngoại lệ DivideByZeroException xảy ra khi thực hiện phép chia một số cho 0;

Kết quả:

DivideByZeroException
Hình 3. Ngoại lệ DivideByZeroException khi chia cho 0

Ví dụ 3: Ngoại lệ InvalidCastException xảy ra khi thực hiện chuyển đổi giữa các kiểu dữ liệu không phù hợp

Kết quả:

InvalidCastException
Hình 4. Ngoại lệ InvalidCastException khi chuyển đổi kiểu dữ liệu từ kiểu Boolean sang kiểu Char

Ví dụ 4: Ngoại lệ IndexOutOfRangeException xảy ra khi truy cập mảng/danh sách/tập hợp có chỉ số nằm ngoài dánh sách.

Kết quả:

IndexOutOfRangeException
Hình 5. Ngoại lệ IndexOutOfRangeException khi truy xuất mảng hoặc tập hợp với chỉ mục nằm ngoài

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.