Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 34 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
34
Dung lượng
268,06 KB
Nội dung
1 Chương 4: ExceptionsChương 4: Exceptions GVLT: Trần Anh Dũng 2 Nội dungNộ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ệ 3 Giới thiệuGiớ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 4 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 Cách xử lý lỗi truyền thốngCách xử lý lỗi truyền thống 5 Ví dụ (1)Ví dụ (1) Block that handles error ………… IF B IS ZERO GO TO ERROR C = A/B PRINT C GO TO EXIT ERROR: DISPLAY “DIVISION BY ZERO” EXIT: END 6 Ví dụ (2)Ví dụ (2) int devide(int num, int denom, int& error) { if (0 != denom){ error = 0; return num/denom; } else { error = 1; return 0; } } 7 Khó kiểm soát ñược hết các trường hợp Lỗi số 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 Cách xử lý lỗi truyền thốngCách xử lý lỗi truyền thống 8 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ệ Xử lý ngoại lệ trong javaXử lý ngoại lệ trong java 9 Ưu ñiểm của “ném” bắt ngoại lệƯ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 10 Hierarchy of Exception ClassesHierarchy of Exception Classes [...]... catch (EOFException e){ //… } Sai 31 Bài t p 1 Vi t chương trình cho phép tính giá tr c a bi u th c: A = 5x - y 2x + 7y Yêu c u x lý các ngo i l có th x y ra 2 Vi t chương trình cho phép t o m t m ng 2 chi u c mxn v i m, n nh p t bàn phím Cài ñ t các x lý ngo i l c n thi t 32 Bài t p 3 Xây d ng l p ngo i l DateException cho các l i v ngày tháng 4 Vi t chương trình cho phép ngư i dùng nh p vào ngày, tháng... loi"); } } 22 “Ném” ngo i l Khi có l i phương th c s ném ra m t exception Vi c ki m soát exception giúp chương trình ki m soát ñư c nh ng trư ng h p ngo i l và x lý l i Dùng t khóa throws ñ ch ñ nh nh ng lo i exception mà phương th c có th “ném” ra () throws 23 “Ném” ngo i l Trong kh i catch, ta có th không x lý tr c ti p ngo i l mà l i “ném” l i ngo... ngo i l k th a t 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 M t s l p ngo i l (3) RuntimeException: Ch các ngo i l JVM th c thi chương trình có th x y ra khi 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: . 1 Chương 4: ExceptionsChương 4: Exceptions GVLT: Trần Anh Dũng 2 Nội dungNội dung Giới thiệu. Cách xử lý lỗi. soát ngoại lệ Ngoại lệ do người dùng tạo Lan truyền ngoại lệ 3 Giới thiệuGiớ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. trường hợp hoạt ñộng không bình thường 4 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