Bài giảng Lập trình hướng đối tượng - Chương 7: Xử lý ngoại lệ (Exception handling) - Nguyễn Sơn Tùng

Đại Học Quốc Gia Tp. Hồ Chí Minh  
Trường ĐH Khoa Học Tự Nhiên  
Khoa Công Nghệ Thông Tin  
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG  
CHƯƠNG 7  
XỬ LÝ NGOẠI LỆ  
(EXCEPTION HANDLING)  
ThS: Phạm Nguyễn Sơn Tùng  
Email: pnstung@fit.hcmus.edu.vn  
Dẫn nhập  
1
2
3
4
Xử lý bằng phương pháp try-throw-catch  
Một vài ví dụ minh họa  
Ứng dụng trong thực tế  
Bài tập tại lớp  
5
2
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
3
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
➢ Bá o lỗi: Một số lỗi hay gặp khi lập trì nh.  
▪ Syntax Error → Compiler  
▪ Logical Error → Debugger  
▪ Runtime Error.  
• Dữ liệu đầu vào xấu.  
• Tài nguyên thiếu hụt.  
Try…Catch  
4
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
➢ Cú phá p: Một số lỗi hay gặp khi lập trì nh.  
try  
{
// protected code  
throw  
}
catch( ExceptionType e )  
{
// code to handle ExceptionType exception  
}
5
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
• Try (thử): Giống như một người giá m sá t (trọng tài), tì m kiếm  
những Exception (ngoại lệ) từ người dùng và Throw (né m) nó về  
một nơi để xử lý.  
• Throw (né m): Dùng để cho người dùng né m một ngoại lệ. Người  
dùng có thể throw một câ u thô ng bá o hoặc 1 biến bất kỳ. Mỗi  
"throw" phải có í t nhất một "catch".  
• Catch (bắt): Khi ngoại lệ được né m đi thì đây là nơi bắt ngoại lệ  
để xử lý hoặc thô ng bá o.  
6
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
➢ Ví dụ 1: Cho chương trì nh tí nh căn của một số, nếu số  
đó là số â m thì bá o khô ng tí nh căn được, ngược lại thì  
tí nh căn đưa kết quả người dùng.  
7
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
8
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
➢ Ví dụ 2: Cho chương trì nh chia 2 số nguyên, nếu có  
trường hợp chia cho số 0 thì khô ng thực hiện lệnh này  
và tiếp tục thực hiện cá c lệnh sau đó, khi hết chương  
trì nh thì dừng.  
9
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
10  
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
➢ Ví dụ 3: Bắt lỗi khi khô ng cấp phá t được vùng nhớ của  
một kiểu dữ liệu cơ bản, ví dụ như string trong c++.  
11  
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
➢ Nhiều loại catch khá c nhau  
12  
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
➢ Ví dụ 4: Exception là một lớp thay vì throw ra cá c kiểu  
dữ liệu cơ bản, có thể gó i Exception lại thành một lớp,  
có thể throw ra đối tượng hoặc con trỏ của đối tượng.  
13  
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
14  
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
15  
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
➢ Ví dụ 5: Kế thừa lớp Exception thay lớp Exception  
trong C++ có thể được kế thừa để custom lại để bắt  
nhiều lỗi mang tí nh “cá nhân” hơn.  
16  
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
17  
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
Cơ chế thô ng bá o lỗi và xử lý ngoại lệ cho phé p tá ch biệt  
thành phần xử lý lỗi với cá c đoạn mã chương trì nh bì nh  
thường.  
Trong nhiều trường hợp lỗi chỉ phá t sinh khi bắt đầu chạy  
chương trì nh, cá c lỗi được phá t hiện nhưng khô ng biết xử  
lý như thế nào. Cơ chế Exception Handling sẽ giúp  
chương trì nh xử lý cá c tì nh huống này.  
18  
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
Bài 01: Khai bá o một cấu trúc mystack định nghĩa lại lớp  
stack. Cho một số ngẫu nhiên được tạo ra từ 1 -> 10. Nếu  
số đó là hợp số thì cho vào stack, nếu số đó là số nguyên  
tố thì thô ng bá o cho người dùng số vừa tạo ra là số  
nguyên tố và khô ng thêm vào stack.  
Stack chỉ chứa tối đa 10 số, nếu quá 10 số thì thô ng bá o  
ra hết vùng nhớ và khô ng thêm vào nữa và thoá t chương  
trì nh.  
19  
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
Bài 02: Viết chương trì nh mô phỏng đồng hồ kilomet, khi  
người dùng nhấn vào phí m “mũi tên bên phải” chương  
trì nh sẽ tăng lên 1 km/h. Khi đồng hồ tăng lên 60 km/h  
đồng hồ sẽ cảnh bá o “QUÁ TỐC ĐỘ” và sẽ hạ xuống từ từ  
cò n 50 km/h lúc đó người dùng có thể bấm tiếp phí m mũi  
tên để tăng thêm tốc độ. (Dùng try catch)  
20  
12/7/2019  
C07: Xử lý lỗi & ngoại lệ  
Tải về để xem bản đầy đủ
pdf 23 trang myanh 31883 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình hướng đối tượng - Chương 7: Xử lý ngoại lệ (Exception handling) - Nguyễn Sơn Tùng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_lap_trinh_huong_doi_tuong_chuong_7_xu_ly_ngoai_le.pdf