Nội dung
Giới thiệu
Ngôn ngữ C# cũng giống như bất cứ ngôn ngữ hướng đối tượng khác, cho phép xử lý những lỗi và các điều kiện không bình thường với những ngoại lệ. 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.
Một điều quan trọng để phân chia giữa bug lỗi và ngoại lệ. Một bug là một lỗi lập trình có thể được sửa chữa trước khi mã nguồn được chuyển giao. Những ngoại lệ thì
không được bảo vệ và tương phản với những bug. Mặc dù một bug có thể là nguyên nhân sinh ra ngoại lệ, chúng ta cũng không dựa vào những ngoại lệ để xử lý những
bug trong chương trình, tốt hơn là chúng ta nên sửa chữa những bug này.
Khi một chương trình gặp một tình huống ngoại lệ, nó sẽ tạo một ngoại lệ. Khi một ngoại lệ được tạo ra, việc thực thi của các chức năng hiện hành sẽ bị treo cho đến khi
nào việc xử lý ngoại lệ tương ứng được tìm thấy.
Điều này có nghĩa rằng nếu chức năng hoạt động hiện hành không thực hiện việc xử lý ngoại lệ, thì chức năng này sẽ bị chấm dứt và hàm gọi sẽ nhận sự thay đổi đến
việc xử lý ngoại lệ. Nếu hàm gọi này không thực hiện việc xử lý ngoại lệ, ngoại lệ sẽ được xử lý sớm bởi CLR, điều này dẫn đến chương trình của chúng ta sẽ kết thúc.
Đón bắt lỗi ngoại lệ
Cú pháp:
try { <câu lệnh> } catch ([<kiểu ngoại lệ> <tên biến>]) { <câu lệnh xử lý ngoại lệ> }
Ví dụ:thực hiện phép chia số nguyên a cho số nguyên b. Ngoại lệ phát sinh khi b = 0, chương trình sẽ đón bắt ngoại lệ này.
int a, b; a = int.Parse(Console.ReadLine()); b = int.Parse(Console.ReadLine()); try { Console.WriteLine("Thuong = " + a / b); } catch (Exception e) { Console.WriteLine("Bi loi, mau so phai khac 0"); }
Kết quả khi nhập b bằng 0:
Xử lý ngoại lệ phát sinh
Khi chương trình sử dụng khối lệnh try và lỗi phát sinh, quá trình đang thực thi của những lệnh trong khối try sẽ hủy bỏ để chuyển qua khối lệnh catch. Các thao tác xử lý
tài nguyên có thể đang dở dang. Ta có thể sử dụng khối phát biểu finally để thực hiện dọn dẹp tài nguyên (như đóng kết nối cơ sở dữ liệu, đóng file, xóa file tạm, …). Cấu
trúc như sau.
try { <Các câu lệnh> } catch ([<kiểu dữ liệu> <tên biến>]) { <câu lệnh xử lý ngoại lệ>} finally { <Các câu lệnh dọn dẹp tài nguyên> }
Lời kết
Trên đây csharpcanban.com đã Hướng dẫn các bạn đón bắt và xử lý lỗi ngoại lệ trong C#. Hãy thực hành và vận dụng vào các ứng dụng của các bạn. Có thắc mắc, hãy tham gia bình luận dưới đây.
Trong các bài tiếp theo mình sẽ tiếp tục hướng dẫn các bạn sử dụng Microsoft Visual Studio C#, sử dụng các Control trong C#, đó là sử dụng Combobox, Listbox, Radio Button, và nhiều Control khác, hãy thường xuyên theo dõi website csharpcanban.com để cập nhật các bài học mới nhé các bạn.
Bản quyền
Nội dung trên csharpcanban.com được biên soạn, biên dịch từ nhiều nguồn khác nhau, đồng thời đã được viết thành chương trình chạy. Csharpcanban.Com bảo lưu mọi quyền đối với những bài viết này. Mọi hình thức sao chép đều cần phải được Csharpcanban.Com cấp phép.