Danh mục

CÔNG NGHỆ JAVA ( Nguyễn Hữu Nghĩa ) - 2.3 Quản lý lỗi và gom rác

Số trang: 25      Loại file: ppt      Dung lượng: 242.00 KB      Lượt xem: 14      Lượt tải: 0    
tailieu_vip

Hỗ trợ phí lưu trữ khi tải xuống: 1,000 VND Tải xuống file đầy đủ (25 trang) 0
Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

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 Khi 1 exception xẩy ra, chương trình kết thúc đột ngột và điều khiển được trả lại cho OS  Cần phải quản lý được các tình huống này....
Nội dung trích xuất từ tài liệu:
CÔNG NGHỆ JAVA ( Nguyễn Hữu Nghĩa ) - 2.3 Quản lý lỗi và gom rác 2.3 Quản lý lỗi và gom rác 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 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 3 1- Exception là gì? 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 Khi 1 exception xẩy ra, chương trình kết thúc đột ngột và điều khiển được trả lại cho OS  Cần phải quản lý được các tình 4 huống này. 2- Cấu trúc các class quản lý lỗi của Java Tham khảo JavaHelp Object Throwable Error Exception AWTError SQLException RuntimeException ThreadDead ClassNotFoundException … … ArithmaticException NullPointerException Khi 1 error/exception xẩy ra, ta NumberFormatException nói rằng nó bị “thrown” (throw) … 5 Cấu trúc các class quản lý lỗi của Java(tt) 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 6 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 7 3- Mô hình try catch finally Có thể thử thực thi 1 tác vụ (try), nếu xuất 1 lỗi thì bẫy lỗi (catch) để xử lý tình huống lỗi và cuối cùng thực thi tiếp (finally). Cú pháp ( Không có các cặp {}  Lỗi: ‘{‘ block try expected ) no e? try {….} catch block catch (Exception e) { …} finally block finally { …} 8 … Mô hình try catch finally(tt) import java.io.*; // TryCatchDemo.java class TryCatchDemo { static double Divide ( double a, double b) { return a/b;} public static void main(String args[]) { try { System.out.println(Divide(5,0));} catch( Exception e) { System.out.println(System exception:+ e.toString());} finally Infinity { System.out.println(I tried to divide 5 by 0);} System.out.println(End!); I tried to divide 5 by 0 } End! } 9 import java.io.*; // ArrayCatch.java class ArrayCatch { static String S; static void Out() { System.out.println(S);} public static void main(String args[]) { try { Out(); } catch (NullPointerException e) { System.out.println(Exception occured:);} finally { int a[]= { 1,2,3,4,5}; try { System.out.println(a[7]);} catch(ArrayIndexOutOfBoundsException e2) { System.err.println(Out of bounds);} null } Out of bounds } 10 4- Sử dụng throw Tóan tử throw cho phép chỉ thị 1 exception đã xẩy ra. Kết qủa 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 để11 quản lý lỗi. Sử dụng throw/throws ... Cú pháp sinh 1 Exception trong hàm ReturnType Method (…) throws ExceptionClass { if (…) throw ExceptionClass(“Message”); else { …… } } 12 Ví dụ về lan truyền exception import java.io.*; // ArrayCatch.java Kích thước của mảng: class ArrayCatch 5 lỗi truyền lên { int a[]= { 1,2,3,4,5}; int n=5; Chỉ số truy xuất: 7 public static void main(String args[]) { ArrayCatch Obj= new ArrayCatch(); Obj.OutElement(7); } void OutElement(int i) { System.out.println (a[i]); } } Exception in thread main java.lang.ArrayIndexOutOfBoundsException   at ArrayCatch.OutElement(ArrayCatch.java:10) at ArrayCatch.main(ArrayCatch.java:7) 13 Cách sửa 1- Try catch bẫy lỗi trong ...

Tài liệu được xem nhiều: