H ng d n x lý h ng ngo i l trong quá trình l p trình Javaướ ẫ ử ướ ạ ệ ậ
Gi i thi uớ ệ
Exception là m t lo i l i đ c bi t. L i này xu t hi n vào lúc th c thi ộ ạ ỗ ặ ệ ỗ ấ ệ ự
ch ng trình. Các tr ng thái không bình th ng x y ra trong khi thi hành ươ ạ ườ ả
ch ng trình t o ra các exception. Nh ng tr ng thái này không đ c bi t ươ ạ ữ ạ ượ ế
tr c trong khi ta đang xây d ng ch ng trình. N u b n không x lý các ướ ự ươ ế ạ ử
tr ng thái này thì ch ng trình có th b k t thúc đ t ng t. Ví d , vi c chia ạ ươ ể ị ế ộ ộ ụ ệ
cho 0 s t o m t l i trong ch ng trình. Ngôn ng Java cung c p c ch ẽ ạ ộ ỗ ươ ữ ấ ơ ế
dùng đ x lý ngo i l r t hi u qu . Vi c x lý này làm h n ch t i đa ể ử ạ ệ ấ ệ ả ệ ử ạ ế ố
tr ng h p h th ng b h ng (crash) hay h th ng b ng t đ t ng t. Tính ườ ợ ệ ố ị ỏ ệ ố ị ắ ộ ộ
năng này làm cho Java tr thành m t ngôn ng l p trình m nh.ở ộ ữ ậ ạ
M c đích c a vi c x lý ngo i lụ ủ ệ ử ạ ệ
M t ch ng trình nên có c ch x lý ngo i l thích h p. N u không, ộ ươ ơ ế ử ạ ệ ợ ế
ch ng trình s b ng t khi m t ngo i l x y ra. Trong tr ng h p đó, t t ươ ẽ ị ắ ộ ạ ệ ả ườ ợ ấ
c các ngu n tài nguyên mà h th ng đã c p không đ c gi i phóng. Đi u ả ồ ệ ố ấ ượ ả ề
này gây lãng phí tài nguyên. Đ tránh tr ng h p này, t t c các ngu n tài ể ườ ợ ấ ả ồ
nguyên mà h th ng c p nên đ c thu h i l i. Ti n trình này đòi h i c ệ ố ấ ượ ồ ạ ế ỏ ơ
ch x lý ngo i l thích h p.ế ử ạ ệ ợ
Xét thao tác vào ra (I/O) trong m t t p tin. N u vi c chuy n đ i ki u d ộ ậ ế ệ ể ổ ể ữ
li u không th c hi n đúng, m t ngo i l s x y ra và ch ng trình b h y ệ ự ệ ộ ạ ệ ẽ ả ươ ị ủ
mà không đóng t p tin l i. Lúc đó t p tin d b h h i và các ngu n tài ậ ạ ậ ễ ị ư ạ ồ
nguyên đ c c p phát cho t p tin không đ c tr l i cho h th ng.ượ ấ ậ ượ ả ạ ệ ố
X lý ngo i lử ạ ệ
Khi m t ngo i l x y ra, đ i t ng (object) t ng ng v i ngo i l đó ộ ạ ệ ả ố ượ ươ ứ ớ ạ ệ
đ c t o ra. Đ i t ng này sau đó đ c truy n cho ph ng th c là n i màượ ạ ố ượ ượ ề ươ ứ ơ
ngo i l x y ra. Đ i t ng này ch a thông tin chi ti t v ngo i l . Thông ạ ệ ả ố ượ ứ ế ề ạ ệ
tin này có th đ c nh n v và đ c x lý. Các môi tr ng runtime nh ể ượ ậ ề ượ ử ườ ư
‘IllegalAccessException’, ‘EmptyStackException’ v.v… có th t o ra ngo i ể ạ ạ
l . Ch ng trình đôi khi có th t t o ra ngo i l . L p ‘Throwable’ đ c ệ ươ ể ự ạ ạ ệ ớ ượ