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

1.3 G l i là gì?

ỡ ỗ

Vi c l p trình r t hay m c ph i l i. Vi c theo dõi, phân tích nguyên nhân gây ra l i đ

c g i là

ệ ậ

ả ỗ

ỗ ượ ọ

g l i

ỡ ỗ .

Có ba lo i l i có th xu t hi n trong ch

ng trình: l i cú pháp, l i ch y và l i ng nghĩa. Đ nhanh

ạ ỗ

ươ

chóng tìm ra l i ta c n phân bi t đ

c chúng.

ệ ượ

1.3.1 L I CÚ PHÁP

Trình biên d ch ch có th chuy n đ i đ

c ch

ng trình n u nh nó đúng đ n v cú pháp; còn n u

ổ ượ

ươ

ế

ư

ế

không, vi c biên d ch s th t b i và b n s không ch y đ

c ch

ng trình.

ẽ ấ ạ

ạ ẽ

ượ

ươ

Cú pháp nghĩa là c u trúc

c a ch

ng trình và các quy t c v c u trúc đó.

ươ

ắ ề ấ

Ch ng h n, trong ti ng Anh, m t câu vi t ph i b t đ u b ng ch in hoa và k t thúc b ng d u ch m. câu

ế

ế

ả ắ ầ

ế

này có m t l i cú pháp. Và câu này cũng v y

ộ ỗ

Đa ph n ban đ c th

ng không đ tâm đ n m t s ít l i cú pháp, vì v y ta có th đ c th c a tác gi e e

ườ

ế

ộ ố

ể ọ

ơ ủ

cummings mà không th t ra l i thông báo l i nào.

Các trình biên d ch thì không nh v y. Ch c n trong ch

ng trình có l i cú pháp b t c đâu, trình

ư ậ

ỉ ầ

ươ

ở ấ ứ

biên d ch s hi n th thông báo l i và k t thúc, và b n s không th ch y ch

ng trình.

ẽ ể

ế

ạ ẽ

ể ạ

ươ

T h n n a là trong Java có nhi u quy t c cú pháp h n là trong ti ng Anh, và th

ng thì nh ng thông

ệ ơ

ơ

ế

ườ

báo l i mà b n nh n đ

c t trình biên d ch đ u không giúp ích gì nhi u.

ượ ừ

ề N u b n m i nh p môn l p

ế

trình đ

c vài tu n, r t có th b n ph i dành nhi u th i gian dò tìm l i. Khi kinh nghi m tăng d n lên,

ượ

ể ạ

b n s tránh đ

c l i t t h n và n u m c thì cũng phát hi n ra l i nhanh h n.

ạ ẽ

ượ ỗ ố ơ

ế

ơ

1.3.2 L I TH C THI

Lo i l i th hai là l i th c thi; chúng có tên nh v y b i vì ch xu t hi n khi ch

ng trình đã b t đ u

ạ ỗ

ư ậ ở

ươ

ắ ầ

ch y. Trong Java, l i th c thi x y ra khi trình thông d ch đang ch y mã byte và có đi u gì đó tr c tr c.

Java có xu h

ng là ngôn ng

ướ

an toàn, theo nghĩa trình biên d ch s b t r t nhi u l i. Do v y l i th c

ẽ ắ ấ

ề ỗ

ậ ỗ

thi s hi m, đ c bi t là nh ng ch

ng trình đ n gi n.

ẽ ế

ươ

ơ

Trong Java, l i th c thi đ

c g i là

ượ ọ

bi t l

ệ ệ, và h u h t các môi tr ng l p trình, chúng xu t hi n d i

ở ầ

ế

ườ

ướ

hình th c c a s ho c h p tho i ghi rõ nh ng thông tin v tình tr ng đã di n ra và lúc đó thì ch

ng

ứ ủ ổ

ặ ộ

ươ

trình đang th c hi n nh ng gì. Thông tin này r t có ích đ i v i vi c g l i.

ố ớ

ệ ỡ ỗ

1.3.3 L I LOGIC VÀ NG NGHĨA

Lo i l i th ba là

ạ ỗ

l i logic

hay l i ng nghĩa

. Trong tr

ng h p có l i ki u này, ch

ng trình s v n

ườ

ươ

ẽ ẫ

đ

c biên d ch và ch y mà không phát ra thông báo l i nào, nh ng s không th c hi n đúng yêu c u

ượ

ư

mong mu n, mà s cho k t qu khác. C th là th c hi n theo đúng nh ng câu l nh mà b n đã ch d n.

ế

ụ ể

ỉ ẫ

V n đ đây là ch

ng trình b n vi t s không đúng theo ý mu n c a b n. Ý nghĩa c a ch

ng trình b

ề ở

ươ

ế ẽ

ố ủ

ươ

sai l ch. Vi c phát hi n các l i ng nghĩa đôi lúc r t khó vì b n c n ph i quay ng

c l i và nhìn vào k t

ạ ầ

ượ ạ

ế

qu c a ch

ng trình đ phán đoán xem b n thân ch

ng trình đã th c hi n nh ng gì.

ả ủ

ươ

ươ

1.3.4 G L I TH NGHI M

Ỡ Ỗ

M t trong nh ng kĩ năng quan tr ng nh t mà b n s h c đ

c, đó là g l i. M c dù đôi khi b v p váp,

ạ ẽ ọ ượ

ỡ ỗ

ị ấ

nh ng vi c g l i r t thú v , ch a đ y th thách và là m t ph n có giá tr trong l p trình.

ư

ệ ỡ ỗ ấ