Unchecked ExceptionsChecked Exceptions 1.2.
Trang 1BÀI 2
X lý ngo i l
Trang 2Nh c l i bài c
Package và Interface
S d ng package
Các t khóa public, protected, private
Các package chu n c a Java
Khái ni m inteface
Th c thi interface
K th a interface
Trang 3N i dung bài h c
1 S d ng kh i try…catch đ x lý ngo i l
2 S d ng final trong kh i try…catch
3 S d ng t khóa throws và throw
Trang 41 S d ng kh i try… catch x lý ngo i l
Trong ph n này có các n i dung:
1.1 C b n v ngo i l (Exception)
1.2 S d ng try… catch x lý ngo i l
- try có nhi u catch
- kh i try l ng nhau
Trang 51.1 C b n v ngo i l
Ngo i l là gì?
• Có nh ng l i ch khi ch y ch ng m i xu t hi n và
ch ng trình ang ch y l p t c ng ng l i và xu t hi nthông báo l i – ó chính là ngo i l (exception)
• Ví d : Ch ng trình chia 2 s N u ta cho m u s =0 thì phát sinh l i và ó c coi là 1 ngo i l
Trang 61.2 S d ng kh i try… catch x lý ngo i l
• Class Throwable x lý l i và ngo i l (Error, Exception)
• T t c các class d i đây đ u n m trong gói java.lang, ngo i tr
class IOException là n m trong gói java.io
ClassNotFoundException
CloneNotSupportedException
IllegalAccessException InstantialtionException
IOException *
RuntimeException
LinkageError ThreadDeath
VitualMachineError
ArithmeticException IllegalArgumentException
Trang 71.1 C b n v ngo i l
Có nhi u ngo i l là l p con c a l p Exception
RuntimeErrorException là l p con c a l p Exception
RuntimeErrorException là các ngo i l ch x y khi ch y
Trang 81.2 S d ng kh i try… catch x lý ngo i l
Trang 9Unchecked Exceptions
Checked Exceptions
1.2 S d ng kh i try… catch x lý ngo i l
Trang 11S d ng t khóa try và catch
1.2 S d ng kh i try… catch x lý ngo i l
try {
// Kh i l nh } catch(…) {
// Kh i l nh x lý ngo i l }
Trang 12Ví d : N u không dùng try… catch, xét ví d sau:
Trang 14• Trong m t o n code có th có nhi u ngo i l x y ra
nên ta s dùng nhi u catch x lý các ngo i l ó.
• Các l nh catch th ng c vi t theo th t xu t hi n
c a ngo i l
• Chú ý: T t c các ngo i l s là l p con c a class
Exception nên catch cu i cùng s là Exception.
Dùng try có nhi u catch
1.2 S d ng kh i try… catch x lý ngo i l
Trang 15Dùng try có nhi u catch
1.2 S d ng kh i try… catch x lý ngo i l
Trang 16N u xu t hi n ngo i l phép chia cho 0 thì l nh (1) s x lý, còn các ngo i l khác s c x lý b i l nh (2) N u t (2) i ch cho (1) thì (2) s x lý luôn ngo i l chia cho 0 vì nh th không c n (1) n a Vì th không th thay i v
1.2 S d ng kh i try… catch x lý ngo i l
Trang 17Kh i try l ng nhau
1.2 S d ng kh i try… catch x lý ngo i l
Trang 18Trong kh i finally s ch a m t kh i mã s th c hi n sau kh i try/catch Kh i finally s c th c hi n dù ngo i l có xu t hi n hay không Tuy nhiên, m i try s yêu c u có ít nh t 1 catch ho c 1 finally.
1.2 S d ng kh i try… catch x lý ngo i l
try catch finally try catch
try finally
Trang 192 S d ng t khóa final trong try… catch
static void proA(){
Trang 20static void proB(){
try{
System.out.println(“ Trong ph ng th c proB ");
return ; }
Trang 21static void proC(){
try{
System.out.println(“ Trong ph ng th c proC ");
} finally{
System.out.println(“ Trong kh i finally c a proC ”); }
}
2 S d ng t khóa final trong try… catch
Nh n xét:
• procA() có t o ra ngo i l mà v n ch y kh i finally
• procB() có return mà v n ch y kh i finally
Trang 223 S d ng t khóa throws và throw
T khóa throws
T khóa throws c s d ng trong method dùng
xu t các ngo i l có th x y ra trong method ó Có
nh ng method s d ng m t s l nh mà các l nh ó có
th x y ra ngo i l ‘checked’ nên chúng ta b t bu c ph i
x lý ngo i l ó Ví d khi x lý các l nh thao tác v i
file, ph i x lý ngo i l ‘checked’ FileNotFoundException
T t c các ngo i l c khai báo b i throws u ph i
c x lý, n u không có s b thông báo l i
Trang 233 S d ng t khóa throws và throw
Ví d 1:
Trang 243 S d ng t khóa throws và throw
Ví d 1 (ti p):
Trang 253 S d ng t khóa throws và throw
Ví d 2: Dùng cách throws trong ph ng th c main
Trang 263 S d ng t khóa throws và throw
Thông th ng các exception s c ‘ném’ ra b i h
th ng Java runtime Tuy v y ta v n có th l p trình
‘ném’ ra các ngo i l khi g p m t tình hu ng nào ótrong khi l p trình
Trong m t ph ng th c có th throw nhi u ngo i l
Trang 273 S d ng t khóa throws và throw
Trang 283 S d ng t khóa throws và throw
Chúng ta có th t vi t class x lý ngo i l c a riêng
mình b ng cách k th a class Exception c a Java:
Trang 293 S d ng t khóa throws và throw