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

NullPointerException:

B n c g ng truy c p m t bi n th c th ho c kích ho t m t ph ng th c trên đ i t ng mà b n

ạ ố ắ

ế

ươ

ố ượ

thân nó đang là null. B n c n ph i hình dung ra bi n nào là

ạ ầ

ế

null r i hình dung xem b ng cách

nào d n đ n hi n t ng đó. Hãy nh r ng khi khai báo m t bi n v i m t ki u đ i t ng, thì ban

ế

ệ ượ

ớ ằ

ế

ố ượ

đ u nó v n là

null đ n t n khi b n gán giá tr cho. Ch ng h n, đo n mã sau gây ra bi t l

ế ậ

ệ ệ

NullPointerException:

Point blank;

System.out.println(blank.x);

ArrayIndexOutOfBoundsException:

Ch s mà b n đang dùng đ truy c p m t m ng đã l n h n

ỉ ố

ơ array.length-1. N u b n tìm đ c v

ế

ượ ị

trí l i, hãy thêm vào câu l nh

print

vào ngay tr c l i này đ hi n th giá tr c a ch s cùng v i

ướ ỗ

ể ể

ị ủ

ỉ ố

chi u dài c a m ng. Li u m ng này có kích th c đúng ch a? Ch s có đúng không? Bây gi

ướ

ư

ỉ ố

tìm ng c l i d c ch ng trình và xem m ng này cùng v i ch s đó b t ngu n t đâu. Hãy tìm

ượ ạ ọ

ươ

ỉ ố

ồ ừ

l nh gán g n nh t và xem nó có th c hi n đúng không. N u không có cái nào là tham s , thì hãy

ế

đ n ch ph ng th c đ c kích ho t và xem các giá tr này đ n t đâu.

ế

ươ

ứ ượ

ế ừ

StackOverFlowException:
Xem “Đ quy vô h n.”

FileNotFoundException:
Đi u này nghĩa là Java không tìm th y file c n thi t. N u b n đang dùng m t môi tr

ng phát tri n

ế

ế

ườ

d a trên các d án, nh Eclipse, thì có kh năng là b n s ph i nh p file đó vào trong d án đang m .

ư

ạ ẽ

Còn không thì hãy đ m b o ch c r ng file đó t n t i và đ ng d n đ n nó đ c ghi đúng. V n đ này

ắ ằ

ồ ạ

ườ

ế

ượ

tuỳ thu c vào h th ng file trên máy tính c a b n, b i v y có th khó dò tìm.

ệ ố

ở ậ

ArithmeticException:
Bi t l phát ra khi có tr c tr c v i phép toán s h c, th ng là phép chia cho s không.

ệ ệ

ặ ớ

ố ọ

ườ

TÔI ĐÃ THÊM VÀO QUÁ NHI U L NH PRINT Đ N N I BÂY GI NG P TRÀN K T QU Đ U RA.

Ả Ầ

M t trong nh ng v n đ khi dùng l nh

print

đ g l i là vi c b n có th b chìm trong k t qu ra. Có

ể ỡ ỗ

ệ ạ

ể ị

ế

hai cách ti p t c: đ n gi n hóa đ u ra ho c đ n gi n hóa ch

ng trình.

ế ụ

ơ

ặ ơ

ươ

Đ gi n hóa k t qu đ u ra, b n c n xóa b ho c đ a vào chú thích nh ng dòng l nh

ể ả

ế

ả ầ

ạ ầ

ặ ư

print

v n không

có tác d ng, ho c k t h p chúng l i, ho c s a đ nh d ng đ u ra đ d hi u h n.

ặ ế ợ

ặ ử

ể ễ ể

ơ

Đ gi n hóa ch

ng trình, có vài cách làm đ

c. Tr

c h t, hãy gi m quy mô c a bài toán xu ng. Ch ng

ể ả

ươ

ượ

ướ ế

h n, n u b n c n tìm ki m trong m ng, hãy làm v i m t m ng

ế

ạ ầ

ế

nhỏ. N u ch ng trình nh n đ u vào t

ế

ươ

phía ng

i dùng, hãy cho nh ng d li u vào đ n gi n mà gây ra l i.

ườ

ữ ệ

ơ

Đ ng th i hãy d n d p ch

ng trình. Hãy b nh ng đo n mã ch t và t ch c l i ch

ng trình đ nó

ươ

ế

ổ ứ ạ

ươ

càng d đ c càng t t. Ch ng h n, n u b n nghi r ng v n đ n m m t đo n n m sâu trong ch

ng

ễ ọ

ế

ề ằ ở ộ

ươ

trình, hãy th vi t l i nó v i c u trúc đ n gi n h n. N u b n nghi ng r ng có m t ph

ng th c l n,

ử ế ạ

ớ ấ

ơ

ơ

ế

ờ ằ

ươ

ứ ớ

hãy th ch nh thành nh ng ph

ng th c nh và ki m tra l n l

t.

ử ẻ

ươ

ầ ượ

Thông th

ng quá trình tìm ra tr

ng h p th đ n gi n nh t s d n b n đ n đi m gây l i. Ch ng h n,

ườ

ườ

ử ơ

ấ ẽ ẫ

ế

n u b n th y ch

ng trình ch y đ

c trong tr

ng h p s ph n t trong m ng là ch n nh ng không

ế

ươ

ượ

ườ

ợ ố

ầ ử

ư

đ

c khi s ph n t là l , thì đi u đó s là d u v t cho th y đi u gì đang di n ra.

ượ

ầ ử

ế

Vi c t ch c l i m t đo n mã có th giúp b n phát hi n nh ng l i nh . N u b n th c hi n s a đ i mà

ệ ổ ứ ạ

ỏ ế

ệ ử