tên Bob.java.old.
•
Xóa b t m t n a mã l nh t file
ớ
ộ ử
ệ
ừ
Bob.java. Th biên d ch l i.
ử
ị
ạ
•
N u gi đây ch
ng trình biên d ch đ
c thì b n bi t r ng l i n m n a kia. Hãy ph c h i l i n a v a
ế
ờ
ươ
ị
ượ
ạ
ế ằ
ỗ ằ ở ử
ụ ồ ạ ử ừ
xóa r i l p l i cách th .
ồ ặ ạ
ử
•
N u ch
ng trình v n không biên d ch n i, thì l i sai ph i n m n a còn l i này. Hãy xóa đi m t n a
ế
ươ
ẫ
ị
ổ
ỗ
ả ằ ở ử
ạ
ộ ử
s mã l nh r i l p l i cách th .
ố
ệ
ồ ặ ạ
ử
•
M t khi b n đã tìm th y và s a đ
c l i, thì hãy d n d n ph c h i l i ph n mã l nh đã xóa, t ng ít t ng
ộ
ạ
ấ
ử
ượ ỗ
ầ
ầ
ụ ồ ạ
ầ
ệ
ừ
ừ
ít m t.
ộ
Quá trình này th t l m c m, nh ng th t ra là nhanh h n so v i b n nghĩ; và cách này cũng r t đáng tin
ậ ộ
ộ
ư
ậ
ơ
ớ ạ
ấ
c y.
ậ
TÔI ĐÃ LÀM THEO CH D N C A TRÌNH BIÊN D CH MÀ V N CH A CÓ TÁC D NG.
Ỉ Ẫ
Ủ
Ị
Ẫ
Ư
Ụ
M t s thông báo c a trình biên d ch l i có đo n l i khuyên nh , ch ng h n “class Golfer must be
ộ ố
ủ
ị
ạ
ạ ờ
ủ
ẳ
ạ
declared abstract. It does not define int compareTo(java.lang.Object) from interface
java.lang.Comparable.” (l p Golfer ph i đ
c khai báo là tr u t
ng. Nó không đ nh nghĩa int
ớ
ả ượ
ừ ượ
ị
compareTo(java.lang.Object) t trong interface java.lang.Comparable.) Nghe có v nh trình biên d ch
ừ
ẻ
ư
ị
đang b o b n khai báo Golfer là l p tr u t
ng, và n u b n đ c cách này thì có l ch ng hi u đó là gì
ả
ạ
ớ
ừ ượ
ế
ạ
ọ
ẽ ẳ
ể
ho c cách làm th nào.
ặ
ế
Th t may là, trình biên d ch đã sai. Trong tr
ng h p này, gi i pháp là đ m b o r ng
ậ
ị
ườ
ợ
ả
ả
ả ằ Golfer có m t
ộ
ph
ng th c mang tên
ươ
ứ
compareTo đ nh n tham s là m t
ể
ậ
ố
ộ Object.
Đ ng đ trình biên d ch d t mũi b n. Các thông báo l i cho b n ch ng c là đã có tr c tr c, nh ng cách
ừ
ể
ị
ắ
ạ
ỗ
ạ
ứ
ớ
ụ
ặ
ư
kh c ph c mà nó chúng đ a ra đ u không đáng tin c y.
ắ
ụ
ư
ề
ậ
D.2 L i th c thi
ỗ
ự
CH
NG TRÌNH TÔI VI T B TREO.
ƯƠ
Ế
Ị
N u m t ch
ng trình d ng l i và hình nh không làm gì, ta nói r ng nó đã b
ế
ộ
ươ
ừ
ạ
ư
ằ
ị treo. Th ng thì đi u
ườ
ề
này nghĩa là nó m c ph i m t vòng l p vô h n ho c đ quy vô h n.
ắ
ả
ộ
ặ
ạ
ặ ệ
ạ
•
N u có m t vòng l p c th mà b n nghi ng có v n đ , hãy thêm m t l nh
ế
ộ
ặ ụ ể
ạ
ờ
ấ
ề
ộ ệ
ngay tr
c vòng l p,
ướ
ặ
đ in ra “tien vao vong lap” và m t l nh khác ngay sau vòng l p, in ra “thoat khoi vong lap”.
ể
ộ ệ
ặ
Ch y
ạ
ch
ng trình. N u b n th y đ
c thông đi p th nh t mà không th y cái th hai thì đã có m t vòng l p
ươ
ế
ạ
ấ
ượ
ệ
ứ
ấ
ấ
ứ
ộ
ặ
vô h n. Xem ti p m c “Vòng l p vô h n” d
i đây.
ạ
ế
ụ
ặ
ạ
ướ
•
h u h t tr
ng h p, đ quy vô h n s làm cho ch
ng trình ch y m t lúc và sau đó phát ra bi t l
Ở ầ
ế
ườ
ợ
ệ
ạ ẽ
ươ
ạ
ộ
ệ ệ
StackOverflowException. N u đi u này x y ra, hãy xem ti p m c “Đ quy vô h n” sau đây.
ế
ề
ả
ế
ụ
ệ
ạ
N u b n
ế
ạ
không g p bi t l StackOverflowException
ặ
ệ ệ
này nh ng nghi ng r ng có v n đ x y ra v i m t ph
ng
ư
ờ ằ
ấ
ề ả
ớ
ộ
ươ
th c ho c hàm đ quy, b n v n có th s d ng các kĩ thu t trong m c “Đ quy vô h n”.
ứ
ặ
ệ
ạ
ẫ
ể ử ụ
ậ
ụ
ệ
ạ
•
N u cách này cũng không có tác d ng thì có th là b n ch a hi u lu ng th c hi n c a ch
ng trình. Hãy
ế
ụ
ể
ạ
ư
ể
ồ
ự
ệ ủ
ươ
đ c ti p m c “Lu ng th c thi” bên d
i.
ọ
ế
ụ
ồ
ự
ướ
VÒNG L P VÔ H N
Ặ
Ạ
N u b n nghĩ r ng b n có m t vòng l p vô h n và cho r ng mình đã bi t đ
c vòng l p nào gây ra v n
ế
ạ
ằ
ạ
ộ
ặ
ạ
ằ
ế ượ
ặ
ấ
đ , thì hãy thêm m t l nh
ề
ộ ệ
t i đi m cu i vòng l p và in ra giá tr các bi n trong đi u ki n cùng v i
ạ
ể
ố
ặ
ị
ế
ề
ệ
ớ
giá tr c a đi u ki n.
ị ủ
ề
ệ