1
Chương 4
Quản lý lỗi và gom rác
2
Mục tiêu
•
Định nghĩa được exception là gì.
•
Phân loại được các exception
•
Sử dụng được cú pháp
try..catch..finally
•
Biết cách tự quản lý exception
•
Giải thích được cơ chế gom rác của
Java
3
Nội dung
4.1- Ôn tập.
4.2- Exception là gì?
4.3- Cấu trúc quản lý lỗi của Java
4.4- Mô hình try catch finally
4.5- Sử dụng throws
4.6- Tự định nghĩa exceptions
4.7- Cơ chế gom rác
4.8- Tóm tắt-trắc nghiệm-bài tập
4
4.1- Ôn tập
•
Lớp là mô hình biểu diễn cho 1 tập các đối
tượng có cấu trúc giống nhau.
•
interface là 1 tên gọi cho một tập các KHAI
BÁO dữ liệu hằng và hành vi hình thành nên
một mô hình xử lý, các hành vi chưa được
hiện thực cần hiện thực ở các lớp.
•
Lớp trừu tượng là lớp khai báo với từ khóa
abstrat và có ít nhất 1 hành vi abstract
•
Hành vi abstract là hành vi chỉ mới được khai
báo mà chưa hiện thực.
5
Ôn tập
•
Lớp abstract và interface khác nhau ở
chỗ: 1 lớp chỉ có thể thừa kế từ 1 lớp
kah1c nhưng lại có thể là 1 hiện thực của
nhiều interface.
•
Gói là 1 khai báo cho 1 tập các lớp, các
interface và các gói cấp thấp hơn.
•
Gói là 1 thư mục có tên trùng với tên gói.
6
4.2- Exception là gì?
•
Java là ngôn ngữ mạnh, có nghĩa là tối thiểu
hóa được lỗi và khi có lỗi thì chúng có thể được
quản lý.
•
Lỗi có 2 loại: Lỗi lúc biên dịch (compile-time
error-lỗi cú pháp), lỗi lúc thực thi (run-time
error- giải thuật sai, không dự đoán được tình
huống).
•
Exception= runtime-error
•
Thí dụ: thực hiện phép chia mà mẫu số là 0
•
Khi 1 exception xẩy ra, chương trình kết thúc
đột ngột và điều khiển được trả lại cho OS
Cần phải quản lý được các tình huống này.
7
4.3- Cấu trúc các class quản lý lỗi của Java
Object
Throwable
ExceptionError
AWTError
ThreadDead
…
SQLException
ClassNotFoundException
…
RuntimeException
ArithmaticException
NullPointerException
NumberFormatException
Khi 1 error/exception xẩy ra, ta
nói rằng nó bị “thrown” (throw)
…
Tham khảo JavaHelp
8
Cấu trúc các class quản lý lỗi của Java(tt)
•
Exception: lớp nền của phân cấp exception.
•
RuntimeException: Lớp nền của nhiều lớp trong
java.lang.exceptions.
•
ArithmaticException: Quản lý lỗi tóan học như chia cho 0.
•
IllegalArgumentException : Lỗi sai đối số.
•
ArrayIndexOutOfBoundsException: Lỗi sai chỉ số của
mảng
•
NullPointerException: Lỗi đã truy xuất 1 đối tượng chưa
khởi tạo
•
SecurityException : Lỗi không được quyền truy cập.
•
ClassNotFoundException: Lỗi không thể nạp 1 lớp vì
không có lớp này
9
Cấu trúc các class quản lý lỗi của Java(tt)
•
NumberFormatException: Lỗi chuyển String ->float.
•
AWTException: Lỗi Abstract Windowing Toolkit
•
ArithmaticException: Quản lý lỗi tóan học như chia cho
0.
•
IOException : Lớp nền của IO exception.
•
FileNotFoundException: Lỗi không có file đã đặc tả
•
EOFException: Lỗi cố truy xuất dữ liệu mà file đã hết
•
IllegalAccessException : Lỗi truy xuất đến 1class bị
cấm.
•
NoSuchMethodException: Lỗi không có method đã đặc
tả
•
InterruptedException: luồng bị ngắt
10
4.4- Mô hình try catch finally
•
Có thể thử thực thi 1 tác vụ (try), nếu xuất 1
lỗi thì bẫy lỗi (catch) để xử lý tình huống lỗi
và cuối cùng thực thi tiếp (finally).
•
Cú pháp
( Không có các cặp {} Lỗi: ‘{‘ expected )
try {….}
catch (Exception e) { …}
finally { …}
…
try block
catch block
finally block
e?
no