intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Chương 4: Exceptions

Chia sẻ: Vo Minh Tu | Ngày: | Loại File: PDF | Số trang:34

93
lượt xem
20
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Chương trình được tổ chức xung quanh các đối tượng hơn là các chức năng. Thiết chương trình trên cơ sở dữ liệu được định nghĩa như thế nào và cách nó có thể được thao tác hơn là thứ tự lôgic của chương trình, mởi bạn tham khảo để biết thêm về exceptions

Chủ đề:
Lưu

Nội dung Text: Chương 4: Exceptions

  1. Chương 4: Exceptions GVLT: Tr n Anh Dũng 1
  2. N i dung Gi i thi u. Cách x lý l i truy n th ng. X lý ngo i l (Exception) trong java Ưu ñi m c a “ném” b t ngo i l M t s l p ngo i l Ki m soát ngo i l Ngo i l do ngư i dùng t o Lan truy n ngo i l 2
  3. Gi i thi u M i ño n chương trình ñ u ti m n kh năng sinh l i L i ch quan: do l p trình sai L i khách quan: do d li u, do tr ng thái c a h th ng L i có 2 lo i. ? Ngo i l (Exception): các trư ng h p ho t ñ ng không bình thư ng 3
  4. Cách x lý l i truy n th ng Cài ñ t mã x lý t i nơi phát sinh ra l i Làm cho chương trình tr nên khó hi u Không ph i lúc nào cũng ñ y ñ thông tin ñ x lý Không nh t thi t ph i x lý Truy n tr ng thái lên m c trên Thông qua tham s , giá tr tr l i ho c bi n t ng th (flag) D nh m Khó hi u 4
  5. Ví d (1) ………… IF B IS ZERO GO TO ERROR C = A/B PRINT C GO TO EXIT ERROR: Block that DISPLAY “DIVISION BY ZERO” handles error EXIT: END 5
  6. Ví d (2) int devide(int num, int denom, int& error) { if (0 != denom){ error = 0; return num/denom; } else { error = 1; return 0; } } 6
  7. Cách x lý l i truy n th ng Khó ki m soát ñư c h t các trư ng h p L is h c L i b nh … L p trình viên thư ng quên không x lý l i B n ch t con ngư i Thi u kinh nghi m, c tình b qua 7
  8. X lý ngo i l trong java Java là ngôn ng m nh, có nghĩa là t i thi u hóa ñư c l i và khi có l i thì chúng có th ñư c qu n lý. Ngo i l : là ñ i tư ng mang thông tin v l i ñã x y ra Ngo i l ñư c “ném” t ñ ng Ngo i l ñư c “ném” tư ng minh D a trên cơ ch “ném” (throw) và b t (catch) ngo i l Ném ngo i l : d ng chương trình và chuy n ñi u khi n lên m c trên (nơi b t ngo i l ) B t ngo i l : x lý v i ngo i l 8
  9. Ưu ñi m c a “ném” b t ngo i l D s d ng D dàng chuy n ñi u khi n ñ n nơi có kh năng x lý ngo i l Có th “ném” nhi u lo i ngo i l Tách x lý ngo i l kh i thu t toán Tách mã x lý S d ng cú pháp khác Không b sót ngo i l (“ném” t ñ ng) Chương trình d ñ c hơn, an toàn hơn 9
  10. Hierarchy of Exception Classes 10
  11. M t s l p ngo i l (1) L p Throwable Có m t bi n String ñ lưu thông tin chi ti t v ngo i l ñã x y ra M t s phương th c cơ b n Throwable(String s); //T o m t ngo i l có tên là s. String getMessage(); //L y thông tin v ngo i l void printStackTrace(); //In ra t t c các thông tin liên quan ñ n ngo i l 11
  12. M t s l p ngo i l (2) L p Exception Có nhi u ngo i l thu c l p con c a Exception. Ngư i dùng có th t o ra các ngo i l k th a t Exception. L p Error Ch nh ng l i nghiêm tr ng và không d ñoán trư c ñư c như ThreadDead, LinkageError, VirtualMachineError… 12
  13. M t s l p ngo i l (3) RuntimeException: Ch các ngo i l có th x y ra khi JVM th c thi chương trình NullPointException: con tr null OutOfMemoryException: h t b nh ArithmeticException: l i toán h c, l i chia không… ClassCastException: l i ép ki u ArrayIndexOutOfBoundsException: l i vư t quá ch s m ng ... 13
  14. Các lo i ngo i l Các Java phân bi t hai lo i ngo i l là ngo i l c n ki m tra và ngo i l không c n ki m tra Ngo i l unchecked Là các ngo i l không b t bu c ph i ki m tra. G m RuntimeException, Error và các l p con c a chúng. Ngo i l checked Là các ngo i l b t bu c ph i ñư c ki m tra. G m các ngo i l còn l i. 14
  15. Ki m soát ngo i l (1) ðo n code có th sinh ra l i c n ñ t trong kh i l nh b t ñ u b ng try. ðo n code ñ ki m tra, x lý trong trư ng h p có l i x y ra ñ t trong kh i l nh catch. try { // ðo n mã có th sinh ra l i … } catch (){ // ðo n mã ki m soát l i } 15
  16. Ki m soát ngo i l (2) Kh i l nh ñ t trong finally luôn ñư c th c thi cho dù có Exception hay không. Thư ng dùng ñ gi i phóng tài nguyên try { // ðo n mã có th sinh ra l i … } catch () {// ðo n mã ki m soát l i } finally { //ðo n mã luôn luôn ñư c th c thi } 16
  17. Ki m soát ngo i l (3) try { // Kh i l nh trư c dòng l nh sinh ra l i // Dòng l nh sinh ra l i (Exception) //… } Kh i l nh sau dòng l nh catch (){ sinh ra l i s b b qua // ðo n mã ki m soát l i và không th c hi n khi có exception } finally { //… } 17
  18. Ki m soát ngo i l - Ví d (1) Ki Ví d 1: … try { int x = 10; int y = 0; float z = x/y; System.out.print("Ket qua la:" + z); } catch(ArithmeticException e) { System.out.println(“Loi tinh toan so hoc”) } … 18
  19. Ki m soát ngo i l - Ví d (2) Ki Ví d 2: … void docfile(String filename) throws IOException{ … FileInputStream fin = new FileInputStream(filename); … } 19
  20. Ki m soát ngo i l - Ví d (3) Ki Ho c … void docfile(String filename) { … try { … FileInputStream fin = new FileInputStream(filename); … } catch (IOException e) { System.out.println(“Loi doc file”); } } 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2