Bài giảng Lập trình nâng cao: Chương 4 Ngoại lệ và cách xử lý ngoại lệ, cung cấp cho người học những kiến thức như: Ngoại lệ là gì?; xử lý ngoại lệ; thực hiện bắt ngoại lệ; một số ngoại lệ thông dụng trong C#; ngoại lệ tự định nghĩa. Mời các bạn cùng tham khảo!
TRƯỜNG ĐẠI HỌC THỦY LỢI Khoa CNTT – Bộ môn CNPM LẬP TRÌNH NÂNG CAO XỬ LÝ NGOẠI LỆ Ngoại lệ cách xử lý ngoại lệ Ngoại lệ gì? • Một ngoại lệ (Exception) vấn đề xuất thực thi chương trình • Ví dụ: – – – – – Lỗi chuyển đổi sai kiểu (chuyển ký tự thành số) Lỗi chia cho số Lỗi truy cập tới phần tử mảng với số không Lỗi truy cập vào đối tượng null … Ngoại lệ cách xử lý ngoại lệ Xử lý ngoại lệ • Xử lý ngoại lệ cách đưa thông báo chương trình gặp phải ngoại lệ trình chạy, giúp chương trình chạy đến kết thúc cách mượt mà theo chủ ý, không bị dừng đột ngột Ngoại lệ cách xử lý ngoại lệ Thực bắt ngoại lệ • Sử dụng khối lệnh try…catch() • Cú pháp: Ngoại lệ cách xử lý ngoại lệ Ví dụ Lệnh có khả bị lỗi Lỗi bắt từ lệnh Ngoại lệ cách xử lý ngoại lệ Bắt nhiều lỗi lúc Ngoại lệ cách xử lý ngoại lệ Ví dụ Ngoại lệ cách xử lý ngoại lệ Bắt nhiều lỗi lúc Ngoại lệ cách xử lý ngoại lệ Phân cấp ngoại lệ C# Exception System Exception Các ngoại lệ C# cài đặt sẵn Aplication Exception Các ngoại lệ người dùng tự định nghĩa Ngoại lệ cách xử lý ngoại lệ 10 Một số ngoại lệ thông dụng C# Kiểu ngoại lệ Ý nghĩa DivideByZeroException Lỗi chia cho số InvalidCastException Xử lý lỗi tạo ép kiểu OutOfMemoryException Xử lý lỗi tạo từ việc thiếu nhớ rỗi StackOverflowException Xử lý lỗi tạo từ việc tràn ngăn xếp (stack) FormatException Lỗi chuyển đổi định dạng Ngoại lệ cách xử lý ngoại lệ 11 Một số ngoại lệ thông dụng C# Kiểu ngoại lệ Ý nghĩa Exception Lớp ngoại lệ SystemException Lớp ngoại lệ phát thời điểm chạy chương trình IndexOutOfRangeException Được ném thời điểm chạy truy cập vào phần tử mảng với số không NullReferenceException Ném thời điểm chạy đối tượng null tham chiếu AccessViolationException Ném thời điểm chạy tham chiếu vào vùng nhớ không hợp lệ InvalidOperationException Ném phương thức trạng thái không hợp lệ Ngoại lệ cách xử lý ngoại lệ 12 Một số ngoại lệ thông dụng C# Kiểu ngoại lệ Ý nghĩa ArgumentNullException Lớp ArgumentException, ném phương thức mà không cho phép thông số null truyền vào ArgumentOutOfRangeException Lớp ArgumentException, ném phương thức đối số không thuộc phạm vi cho phép truyền vào ExternalException Lớp cho ngoại lệ xẩy đến từ mơi trường bên ngồi ArgumentException Lớp cho ngoại lệ liên quan tới đối số (Argument) Ngoại lệ cách xử lý ngoại lệ 13 Ví dụ Ngoại lệ cách xử lý ngoại lệ 14 Bài tập • Viết chương trình cho phép nhập số a b Thực đưa kết qủa phép tính: – – – – a+b a- b a*b a/b • u cầu: – Đưa thơng báo lỗi nhập sai liệu – Đưa thông báo lỗi chia cho số Ngoại lệ cách xử lý ngoại lệ 15 Bài tập • Viết chương trình cho phép nhập vào số có chữ số • Thơng báo lỗi nhập khơng Ngoại lệ cách xử lý ngoại lệ 16 Ngoại lệ tự định nghĩa • Kế thừa lớp ApplicationException • Cú pháp khai báo lớp ngoại lệ: class : ApplicationException { public (string msg) : base(msg){ } } Ngoại lệ cách xử lý ngoại lệ 17 Ngoại lệ tự định nghĩa • Cú pháp gọi lớp ngoại lệ thực hiện: throw new (); • Sử dụng: giống sử dụng lớp ngoại lệ Ngoại lệ cách xử lý ngoại lệ 18 Ví dụ ngoại lệ tự định nghĩa Ngoại lệ cách xử lý ngoại lệ 19 Ví dụ ngoại lệ tự định nghĩa Ngoại lệ cách xử lý ngoại lệ 20 Ví dụ ngoại lệ tự định nghĩa Ngoại lệ cách xử lý ngoại lệ 21 Bài tập • Định nghĩa lớp ngoại lệ riêng • Thực tạo lớp tam giác có: – Dữ liệu: cạnh – Phương thức: nhập, tính chu vi – Yêu cầu đưa thông báo lỗi nhập sai liệu cạnh tam giác • Viết chương trình thực hiện: – Khai báo mảng gồm tam giác – Nhập liệu cho tam giác – Đưa thơng báo lỗi gặp chạy chương trình Ngoại lệ cách xử lý ngoại lệ 22 Bài tập • Định nghĩa lớp ngoại lệ riêng để thực bắt ngoại lệ sau: – Lỗi nhập sai liệu – Lỗi truy cập số mảng – Kiểm tra tuổi tuyển dụng lao động • Nếu tuổi 40 thơng báo q già • Nếu tuổi từ 18 đến 40 thơng báo đạt yêu cầu Ngoại lệ cách xử lý ngoại lệ 23 ... vào đối tượng null … Ngoại lệ cách xử lý ngoại lệ Xử lý ngoại lệ • Xử lý ngoại lệ cách đưa thơng báo chương trình gặp phải ngoại lệ q trình chạy, giúp chương trình chạy đến kết thúc cách mượt mà... (Argument) Ngoại lệ cách xử lý ngoại lệ 13 Ví dụ Ngoại lệ cách xử lý ngoại lệ 14 Bài tập • Viết chương trình cho phép nhập số a b Thực đưa kết qủa phép tính: – – – – a+b a- b a*b a/b • Yêu cầu: –... cạnh tam giác • Viết chương trình thực hiện: – Khai báo mảng gồm tam giác – Nhập liệu cho tam giác – Đưa thơng báo lỗi gặp chạy chương trình Ngoại lệ cách xử lý ngoại lệ 22 Bài tập • Định nghĩa