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 đủ
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:
bai_giang_lap_trinh_huong_doi_tuong_chuong_7_xu_ly_ngoai_le.pdf

