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

Ph l c D: G

ụ ụ

ỡ l i

Tr v

ở ề M c l c

ụ ụ cu n sách

Chi n thu t g l i hay nh t còn tuỳ thu c vào lo i l i b n m c ph i:

ế

ậ ỡ ỗ

ạ ỗ ạ

L i cú pháp t o ra b i trình biên d ch, nh m ch đ nh có tr c tr c trong cú pháp c a ch

ng trình.

ỉ ị

ươ

Ch ng h n: b m t d u ch m ph y cu i câu l nh.

ỏ ấ ấ

ẩ ở ố

Các bi t l đ

c t o ra n u có đi u gì tr c tr c khi ch

ng trình đang ch y. Ch ng h n: m t vòng đ quy

ệ ệ ượ ạ

ế

ươ

vô h n cu i cùng s gây nên bi t l

ệ ệ StackOverflowException.

L i logic khi n cho ch

ng trình th c hi n vi c làm sai. Ch ng h n, m t bi u th c có th không đ

c

ế

ươ

ượ

tính toán đúng theo trình t mà b n đ nh li u, cho ra k t qu không l

ng tr

c.

ế

ườ

ướ

Các m c ti p sau đây đ

c x p theo ki u l i; có nh ng kĩ thu t x lý dùng đ

c cho nhi u lo i l i khác

ế

ượ ế

ể ỗ

ậ ử

ượ

ạ ỗ

nhau.

D.1 L i cú pháp

Hình th c g l i hay nh t là đó b n không ph i làm gì, b i ngay t đ u b n đã tránh m c ph i l i.

ứ ỡ ỗ

ừ ầ

ả ỗ

Trong m c tr

c, tôi đã đ xu t nh ng chi n l

c phát tri n đ gi m thi u l i và t o đi u ki n phát

ướ

ế ượ

ể ả

ể ỗ

hi n s m l i khi m c ph i chúng. Đi m m u ch t là l y m t ch

ng trình ch y đ

c làm đi m kh i

ệ ớ

ươ

ượ

đ u, và m i lúc ch thêm r t ít mã l nh. Khi có l i, b n s bi t rõ là l i này n m đâu.

ạ ẽ ế

ằ ở

Dù v y, b n có th s r i vào m t trong nh ng tình hu ng sau. V i m i tình hu ng, tôi l i có đ xu t

ể ẽ ơ

cách x lý thích h p.

TRÌNH BIÊN D CH BÀY RA LA LI T NH NG THÔNG BÁO L I.

N u trình biên d ch có báo đ n 100 l i đi n a, thì đi u này cũng không có nghĩa là ch

ng trình b n có

ế

ế

ươ

100 l i. M i khi trình biên d ch g p m t l i, nó th

ng đi ch ch ra kh i lu ng th c thi m t quãng. Nó

ộ ỗ

ườ

s c g ng h i ph c và ti p t c theo lu ng th c thi sau l i đ u tiên, nh ng đôi khi nó thông báo nh ng

ẽ ố ắ

ế ụ

ỗ ầ

ư

l i đáng ng .

Ch có thông báo l i đ u tiên m i đáng tin c y. Tôi g i ý r ng b n s a t ng l i m t, r i biên d ch l i

ỗ ầ

ạ ử ừ

ộ ồ

ch

ng trình. B n có th th y m t d u ch m ph y có th “s a đ

c” 100 l i.

ươ

ể ấ

ộ ấ

ể ử

ượ

TÔI ĐANG G P M T L I BIÊN D CH TH T KÌ QU C VÀ NÓ CH NG BI N ĐI.

Tr

c h t, hãy đ c kĩ thông báo l i này. Thông báo đ

c vi t b ng ngôn ng chuyên d ng và r t ng n

ướ ế

ượ

ế ằ

ng i, song th

ng n ch a m t thông tin c t lõi.

ườ

N u không có gì khác, thông báo s cho b n bi t tr c tr c x y ra đâu trong ch

ng trình. Th c ra, nó

ế

ế

ặ ả

ươ

cho b n bi t trình biên d ch đang đâu khi phát hi n th y l i, ch không nh t thi t là n i có l i. Hãy

ế

ấ ỗ

ế

ơ

dùng thông tin thu nh n t trình biên d ch nh m t ch d n, song n u b n không th y l i theo h

ng

ậ ừ

ư ộ

ỉ ẫ

ế

ấ ỗ

ướ

ch d n đó thì hãy m r ng vi c tìm ki m ra.

ỉ ẫ

ở ộ

ế

Nói chung l i s n m tr

c v trí thông báo l i, song cũng có nh ng tr

ng h p mà l i n m n i khác

ỗ ẽ ằ ở ướ ị

ườ

ỗ ằ ở ơ

Liên Kết Chia Sẽ

** Đâ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.