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
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 ...
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ìm kiếm theo từ khóa liên quan:
bài giảng khoa học máy tính lập trình java java cơ bản thuật toán lập trình giao diện đồ họa công nghệ javaTài liệu liên quan:
-
Tóm tắt Đồ án tốt nghiệp Khoa học máy tính: Xây dựng ứng dụng quản lý quán cà phê
15 trang 476 1 0 -
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 378 6 0 -
32 trang 231 0 0
-
Đồ án nghiên cứu khoa học: Ứng dụng công nghệ cảm biến IoT vào mô hình thủy canh
30 trang 201 0 0 -
Bài giảng học Lý thuyết tài chính- tiền tệ
54 trang 177 0 0 -
6 trang 175 0 0
-
Giải thuật và cấu trúc dữ liệu
305 trang 163 0 0 -
76 trang 157 2 0
-
3 trang 143 2 0
-
Excel add in development in c and c phần 9
0 trang 110 0 0