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
ỗ
ệ
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
ộ
ữ
ấ
ề
ệ
đ 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
ể ả
ế
ả ầ
ạ ầ
ỏ
ặ ư
ữ
ệ
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à
ệ ổ ứ ạ
ộ
ạ
ể
ạ
ệ
ữ
ỗ
ỏ ế
ạ
ự
ệ ử
ổ