Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Khác Biệt Giữa Ngoại Lệ Cấp Hệ Thống Và Cấp Ứng Dụng


Như chúng ta biết, ngoại lệ (exception) là thứ ám chỉ sự gián đoạn trong luồng chương trình hoặc ứng dụng. Sự kiện không mong muốn này gọi là Exception và thường cho chỉ ra có gì sai trong mã. Đặc biệt trong ngôn ngữ C#, một ngoại lệ có thể là cấp Hệ thống (System) hoặc cấp Ứng dụng (Application Level). Vì vậy dựa trên cơ sở

STT Khóa Ngoại lệ cấp hệ thống Ngoại lệ cấp ứng dụng
1 Sự Dẫn Xuất (Derivation) Ngoại lệ hệ thống dẫn xuất từ lớp cơ sở System.SystemException mà bản thân nó là lớp dẫn xuất của SystemException. Ngược lại, ngoại lệ cấp ứng dụng dẫn xuất từ lớp cơ sở System.ApplicationException mà lại là lớp dẫn xuất của SystemException.
2 Sự Xảy Ra (Occurrence) Ngoại lệ hệ thống xảy ra khi gặp lỗi không khôi phục được hoặc chí mạng, như sập database, lỗi vượt biên (bounds errors), v.v. Trong khi ngoại lệ cấp ứng dụng gặp lỗi có thể khôi phục, ví dụ: kiểu dữ liệu đầu vào sai, ngoại lệ số học, v.v.
3 Xử Lý (Handling) Vì lỗi cấp hệ thống là chí mạng nên không có xử lý nào cho loại ngoại lệ này hoặc phương pháp ngăn chặn chúng. Ngược lại, ngoại lệ cấp ứng dụng thường được xử lý ở cấp mã dùng try-catch. Nếu mã không có try-catch cho ngoại lệ xảy ra thì nó lan truyền đến cấp trang nơi Page_Error routine có thể dùng để xử lý.
4 Tùy Chỉnh (Customization) Tùy chỉnh ngoại lệ KHÔNG được hỗ trợ cho ngoại lệ cấp hệ thống. Ngược lại, chúng ta có thể định nghĩa và khai báo ngoại lệ cấp ứng dụng tùy chỉnh.
5 Sinh Ra (Generation) Như đã nêu, ngoại lệ cấp hệ thống được ném bởi .NET Common Language Runtime và dùng trong hầu hết ứng dụng .Net. Ngược lại, ngoại lệ cấp ứng dụng được ném khi lỗi có thể khôi phục xảy ra, như giá trị đối số không hợp lệ cho phương thức nghiệp vụ. Nó cảnh báo client về vấn đề logic nghiệp vụ hoặc ứng dụng cụ thể.