Nội dung
Giới thiệu
Khi lập trình ứng dụng với C# sẽ xuất hiện nhiều tình huống chương trình xảy ra những ngoại lệ không mong muốn, hay những sự kiện đặc biệt khác khi chạy ứng dụng. Ngoại lệ chính là sự xuất hiện các điều kiện làm thay đổi quá trình thực thi ứng dụng, khiến cho ứng dụng hoạt động không như mong muốn ban đầu của lập trình viên.
Một số ngoại lệ thường xảy ra như: tràn bộ nhớ khi chạy ứng dụng, tệp không tồn tại, kết nối internet bị hủy đột ngột, v.v…. Những ngoại lệ này thường được gọi là Runtime Errors, nó xảy ra trong quá trình thực thi ứng dụng, hình ảnh báo khi có ngoại lệ như hình dưới đây.
Trong C#, việc xử lý ngoại lệ là một phần cơ bản mà các lập trình viên cần phải thực hiện trước khi chạy ứng dụng. Để xử lý ngoại lệ trong C# ta sử dụng lớp Exception.
Cấu trúc câu lệnh
Để xử lý ngoại lệ thông thường ta sử dụng câu lệnh Try – Catch – Finally. Câu lệnh Try dùng để thực thi đoạn mã lệnh, câu lệnh Catch dùng để bắt và xử lý ngoại lệ, câu lệnh Finally dùng để làm sạch tài nguyên sau khi có ngoại lệ xảy ra. Cấu trúc câu lệnh như sau:
try { //đoạn mã cần thực thi } Catch (exception type) { //đoạn mã đón bắt lỗi }
Khối lệnh finally được thực thi cả khi có ngoại lệ hay không có ngoại lệ. Nghĩa là khối lệnh này sẽ thực thi đoạn mã trong nó sau khi thực hiện khối lệnh Try hoặc khối lệnh Catch.
try { //đoạn mã cần thực thi } Catch (exception type) { //nếu có ngoại lệ //đoạn mã cần thực thi } finally { //đoạn mã cần thực thi }
Ví dụ đoạn mã dưới đây thực hiện chia cho số 0. Trên thực tế thì không thể chia cho 0, chính vì vậy đoạn lệnh trong khối lệnh Try sẽ xảy ra ngoại lệ.
try { int val = 100; int div = 0; int resultVal; resultVal = (val / div); MessageBox.Show("Kết quả: " + resultVal); } catch (System.Exception ex) { MessageBox.Show("Bắt ngoại lệ ở đây - chi tiết: " + ex.ToString()); } finally { MessageBox.Show("Thực hiện khối lệnh Finally"); }
Mã ứng dụng
using System; using System.Windows.Forms; namespace WindowsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { try { int val = 100; int div = 0; int resultVal; resultVal = (val / div); MessageBox.Show("Kết quả: " + resultVal); } catch (System.Exception ex) { MessageBox.Show("Bắt ngoại lệ ở đây - chi tiết: " + ex.ToString()); } finally { MessageBox.Show("Thực hiện khối lệnh Finally"); } } } }
Kết luận
Như vậy, trên đây csharpcanban.com đã Hướng dẫn các cách bắt và xử lý ngoại lệ trên C#. Hãy thực hành ngay nhé các bạn. Hãy tham gia bình luận và trao đổi ở phía dưới, chúng tôi sẽ trả lời ngay và luôn để các bạn nắm được bài.
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.