- Ngoại lệ là 1 đối tượng chứa các thông tin về sự cố của chương trình trong thời điểm chạy.. -_ Khi khối lệnh được bao bởi try phát sinh ngoại lệ.. catch được dùng để bắt ngoại lệ.. Khố
Trang 11 Phát sinh và bắt giữ ngoại lệ
2 Câu lệnh throw
Cau lénh catch
4 Cau lệnh finally
Những đối tượng ngoại lệ
6 Tạo riêng các ngoại lệ
7 Phát sinh lại ngoại lệ
Trang 2- Ngoại lệ là 1 đối tượng chứa các thông tin về sự
cố của chương trình trong thời điểm chạy
-_ Bug và Error: Bug là các lỗi về mặt lập trình Với bug, người lập trình phải sửa code cho đúng
Error là lỗi do người sử dụng Ví dụ với dữ liệu
kiểu số nhưng người dùng nhập kiểu ký tự, xâu
ký tự Với error người lập trình có thể tiên đoán
và hạn chế các lỗi này
- Ca Bug và error déu phat sinh ngoại lệ
Trang 3
catch[(Exception ex)]
{ }
finally
{ }
Trang 4- Khối lệnh try thường đặt bao quanh khối lệnh
tiềm ẩn gây ra nguy hiểm
-_ Khi khối lệnh được bao bởi try phát sinh ngoại lệ
catch được dùng để bắt ngoại lệ Khối lệnh trong
catch dùng để xử lý lỗi
Trang 5- Lệnh throw: để phát sinh ra ngoại lệ
Cu phap: throw objException
+ objException: là đối tượng kiểu Exception hoặc
các dân xuất của nó
- Khi phat sinh ngoại lệ lập tức dừng việc thực thi
chương trình, CLR sẽ tìm kiếm trình xử lý ngoại
lệ Nếu không tìm thấy trong phương thức hiện
thời thì sé tìm trong phương thức gọi Nếu đến
hàm Main() vần không có trình xử lý sự kiện thì
CLR sẽ dừng chương trình
- Ví dụ:
Trang 6- _ Trình xử lý sự kiện được đặt trong khối lệnh catch
-_ Ví dụ sau, câu lệnh throw được thực thi bên trong khối try, và một khối catch được sử dụng để công bố rang
một lỗi đã được xử lý
public void Func2()
{
Console.WriteLine("Enter Func2 ");
try
{
Console.WriteLine("Entering try block ");
throw new System.Exception();
Console.WriteLine(“Exiting try block ");
}
catch
{
Console.WriteLine("Exception caught and handled.");
}
Console.WriteLine(“Exit Funcz ");
Trang 7— Lênhfnhl
Tình huống: trong thực tế, một số thao tác ta can
phải thực hiện dù có phát sinh ngoại lệ hay
không Ví dụ: khi thao tác với file, chúng ta cần
đóng file, giải phóng vùng đệm chúng chiếm giữ
ngay cả khi phát sinh ngoại lệ hay không
-_ Giải pháp: viết lệnh đóng file trong cả khối lệnh
try và catch -> trùng lặp lệnh, rườm ra
-_ C# cung cấp cơ chế thay thế việc đó tốt hon, trong khối lệnh finally
- Khối lệnh trong finally sẽ được thực hiện dù có phát sinh ngoại lệ hay không