Bài giảng Công nghệ Java: Chương 5 - Trần Quang Diệu
lượt xem 4
download
Mục tiêu của Bài giảng Công nghệ Java: Chương 5 nhằm giúp các bạn định nghĩa được exception là gì, phân loại được các exception, sử dụng được cú pháp try..catch..finally, biết cách tự quản lý exception, giải thích được cơ chế gom rác của Java,...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Công nghệ Java: Chương 5 - Trần Quang Diệu
- CÔNG NGHỆ JAVA CH5. QUẢN LÝ LỖI VÀ GOM RÁC Quang Dieu Tran PhD 03/06/18 1
- Mục tiêu • Định nghĩa được exception là gì. • Phân loại được các exception • Sử dụng được cú pháp try..catch..finally • Biết cách tự quản lý exception • Giải thích được cơ chế gom rác của Java 03/06/18 2
- Nội dung 1- Exception là gì? 2- Cấu trúc quản lý lỗi của Java 3- Mô hình try catch finally 4- Sử dụng throws 5- Tự định nghĩa exceptions 6- Cơ chế gom rác 7- Tóm tắt-trắc nghiệm-bài tập 03/06/18 3
- Exception • 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ý. • Lỗi có 2 loại: – Lỗi lúc biên dịch (compile-time error-lỗi cú pháp) – Lỗi lúc thực thi (run-time error- giải thuật sai, không dự đoán được tình huống). • Exception= runtime-error • Thí dụ: thực hiện phép chia mà mẫu số là 0 03/06/18 4
- Exception • Là 1 kiểu lỗi đặc biệt, xảy ra trong thời gian thực thi khối lệnh và có thể gây ngừng đột ngột chương trình. • Các lỗi thường gây nên biệt lệ: – Tràn bộ nhớ – Lỗi cấp phát tài nguyên – Không tìm thấy file – Lỗi kết nối 03/06/18 5
- Mục đích của việc xử lý • Giảm thiểu việc kết thúc bất thường của hệ thống và của chương trình. • Ví dụ: khi đang thao tác trên 1 tập tin nếu gặp lỗi mà không xử lý và chương trình kết thúc đột ngột thì file sẽ không được đóng và có thể dẫn đến hư file và các nguồn tài nguyên sẽ không được giải phóng. 03/06/18 6
- Java API Exception Hierachy 03/06/18 7
- Cấu trúc các class quản lý lỗi của Java • Exception: lớp nền của phân cấp exception. • RuntimeException: Lớp nền của nhiều lớp trong java.lang.exceptions. • ArithmaticException: Quản lý lỗi tóan học như chia cho 0. • IllegalArgumentException : Lỗi sai đối số. • ArrayIndexOutOfBoundsException: Lỗi sai chỉ số của mảng • NullPointerException: Lỗi đã truy xuất 1 đối tượng chưa khởi tạo • SecurityException : Lỗi không được quyền truy cập. • ClassNotFoundException: Lỗi không thể nạp 1 lớp vì không có lớp này 03/06/18 8
- Cấu trúc các class quản lý lỗi của Java(tt) • NumberFormatException: Lỗi chuyển String ->float. • AWTException: Lỗi Abstract Windowing Toolkit • ArithmaticException: Quản lý lỗi tóan học như chia cho 0. • IOException : Lớp nền của IO exception. • FileNotFoundException: Lỗi không có file đã đặc tả • EOFException: Lỗi cố truy xuất dữ liệu mà file đã hết • IllegalAccessException : Lỗi truy xuất đến 1class bị cấm. • NoSuchMethodException: Lỗi không có method đã đặc tả • InterruptedException: luồng bị ngắt 03/06/18 9
- Quá trình xử lý lỗi • Xác định loại lỗi và đoạn lệnh xảy ra lỗi • Xác định cơ chế bắt lỗi • Xác định vị trí đoạn lệnh cần viết để bắt lỗi • Xác định thông báo sẽ hiển thị nếu lỗi xảy ra • Viết đoạn lệnh xử lý lỗi • Lưu, biên dịch và chạy chương trình 03/06/18 10
- Xử lý biệt lệ như thế nào? • Khi 1 biệt lệ xảy ra thì một đối tượng tương ứng sẽ được tạo ra. • Đối tượng sẽ được truyền tới phương thức nơi mà biệt lệ xảy ra. • Đối tượng này chứa các thông tin chi tiết về biệt lệ, các thông tin này sẽ có thể được nhận và xử lý. • Lớp “Throwable” của Java là lớp cha của tất cả các biệt lệ 03/06/18 11
- Biệt lệ 03/06/18 12
- Mô hình xử lý biệt lệ • Các mô hình dùng để xử lý biệt lệ: – try-catch-finally – Throw / throws 03/06/18 13
- Try-catch-finally • Sử dụng khối try, catch, finally để bắt giữ các ngoại lệ Khối lệnh có thể ném ngoại lệ Khối lệnh sẽ thực hiện nếu ngoại lệ xảy ra Khối lệnh sẽ thực hiện bất chấp ngoại lệ xảy ra hay không 03/06/18 14
- Try-catch-finally 03/06/18 15
- Try-catch-finally public static void method(String s) { try { String s =“mot”; System.out.println(Integer.parseInt(s)); } catch (NumberFormatException e) { System.out.println("wrong fomat"); } finally{ System.out.println(“String s = ”+s); } } 03/06/18 16
- Throw và Throws • Tóan tử throw cho phép chỉ thị 1 exception đã xẩy ra. Kết quả là 1 đối tượng của 1 lớp dẫn xuất của lớp Throwable. • Tình huống: method X() gọi method Y(), Y() thực thi gây ra 1 exception mà không được quản lý, exception này lan về cho phương thức gọi là X() . Nếu trong X() cũng không quản lý lỗi Lỗi truyền về cho nơi đã gọi X() • Cách giải quyết: a) Trong Y() có quản lý lỗi; b) Trong X() có có cấu trúc try…catch để quản lý lỗi. 03/06/18 17
- Throw và Throws • Các biệt lệ được chặn bởi sự trợ giúp của từ khóa throw. • Throw giúp chỉ ra biệt lệ vừa xảy ra. • Toán hạng của throw là một đối tượng của 1 lớp mà lớp này được dẫn xuất từ Throwable try{ if (flag < 0){ throw new MyException( ) ; // user-defined } } 03/06/18 18
- Throw và Throws • Lớp Exception thực thi giao diện Throwable và cung cấp các tính năng hữu dụng để phân phối các biệt lệ. • Một lớp con của lớp Exception là một biệt lệ mới có thể bắt giữ độc lập các Throwable khác nhau. 03/06/18 19
- Throw và Throws • Cú pháp sinh 1 Exception trong hàm ReturnType Method (…) throws ExceptionClass { if (…) throw ExceptionClass(“Message”); else { …… } } 03/06/18 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Chuyên đề Java: Chương 3 - Nguyễn Hoàng Anh
36 p | 97 | 12
-
Bài giảng Công nghệ Java: Chương 7 - Trần Quang Diệu
44 p | 85 | 8
-
Bài giảng Công nghệ Java: Chương 6 - Trần Quang Diệu
52 p | 55 | 6
-
Bài giảng Công nghệ Java: Chương 2 - Trần Quang Diệu
84 p | 57 | 6
-
Bài giảng Công nghệ Java: Chương 1 - Trần Quang Diệu
35 p | 87 | 6
-
Bài giảng Lập trình Java: Chương 3 - Java cơ bản (TT)
9 p | 90 | 6
-
Bài giảng Nhập môn java - Chương 1: Tổng quan ngôn ngữ java
50 p | 87 | 6
-
Bài giảng Công nghệ Java: Chương 0 - Trần Quang Diệu
6 p | 67 | 5
-
Bài giảng Công nghệ Java: Chương 4 - Trần Quang Diệu
68 p | 50 | 5
-
Bài giảng Công nghệ Java: Chương 3 - Trần Quang Diệu
24 p | 48 | 4
-
Bài giảng Công nghệ Java: Chương 8 - Trần Quang Diệu
106 p | 65 | 4
-
Bài giảng Công nghệ lập trình tích hợp: Chương 5 - TS. Nguyễn Quang Uy
48 p | 8 | 3
-
Bài giảng Công nghệ lập trình tích hợp: Chương 0 - TS. Nguyễn Quang Uy
9 p | 19 | 3
-
Bài giảng Công nghệ Java: Bài 4.1 - Nguyễn Hữu Thể
27 p | 32 | 3
-
Bài giảng Công nghệ lập trình tích hợp: Chương 6 - TS. Nguyễn Quang Uy
45 p | 12 | 3
-
Bài giảng Công nghệ Java: Bài 5 - Nguyễn Hữu Thể
5 p | 27 | 1
-
Bài giảng Công nghệ Java: Bài 4.2 - Nguyễn Hữu Thể
52 p | 30 | 1
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn