1. Ngoại lệ (Exception)
Khi phát triển chương trình, người lập trình thường xuyên phải quan tâm tới việc xử lý lỗi phát sinh từ chương trình. Trong các đoạn mã chương trình ngoài các lỗi cú pháp có thể xử lý trước khi biên dịch, còn có các lỗi mà chỉ khi thực thi chương trình mới có thể phát sinh. Chẳng hạn, lỗi tràn bộ nhớ, lỗi chia cho không, lỗi khi truy xuất các tài nguyên khác như file, cơ sở dẽ liệu, hoặc lỗi phát sinh từ hành động của người sử dụng như người sử dụng nhập vào một số nhưng họ lại nhập vào ký tự chữ cái.
Ngôn ngữ C# cũng giống như các ngôn ngữ hướng đối tượng khác, cho phép người lập trình bắt và xử lý lỗi hay các điều kiện không bình thường trong các đoạn chương trình mà người lập trình thấy có nguy cơ phát sinh lỗi. Việc bắt và xử lý này gọi là bắt và xử lý các ngoại lệ (exception). Ngoại lệ là một đối tượng đóng gói những thông tin về sự cố của một chương trình không bình thường. Khi thực thi tới một câu lệnh làm phát sinh lỗi hoặc các điều kiện không bình thường thì một ngoại lệ được tạo ra, việc thực thi chương trình bị gián đoạn cho đến khi nào việc xử lý ngoại lệ tương ứng được tìm thấy. Nếu như đoạn chương trình xử lý ngoại lệ tương ứng không được tìm thấy thì chương trình sẽ được bộ xử lý ngoại lệ ngầm định xử lý bằng cách kết thúc chương trình.
Như vậy, nếu người lập trình không quan tâm bắt và xử lý các ngoại lệ trong các đoạn mã lệnh có nguy cơ phát sinh lỗi, nói ngắn gọn là không viết chương trình xử lý ngoại lệ thì khi ngoại lệ xảy ra chương trình sẽ bị kết thúc theo cách mà ngươi lập trình không kiểm soát được trước dẫn tới khó khăn cho người sử dụng chương trình. Còn nếu ngoại lệ được bắt và xử lý thì người lập trình có thể viết các đoạn chương trình xử lý ngoại lệ để sửa chữa vấn đề phát sinh và chương trình tiếp tục được hoạt động theo kiểm soát của người lập trình. Thậm chí nếu chương trình không thể tiếp tục hoạt động, bằng việc bắt giữ ngoại lệ người lập trình vẫn có thể in ra những thông điệp cụ thể, có ý nghĩa, thông báo về vấn đề đã phát sinh cho người sử dụng và kết thúc chương trình một cách rõ ràng.