THINK JAVA: CÁCH SUY NGHĨ NHƯ NHÀ KHOA HỌC MÁY TÍNH - Trang 162

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

ế

ặ ụ ể

ộ ệ

print

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

ộ ệ

print

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.

ị ủ

Liên Kết Chia Sẽ

    error code: 525
** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.