Bài giảng Ngôn ngữ lập trình Java: Xử lý ngoại lệ (Exception) - TS. Nguyễn Thị Hiền
Số trang: 33
Loại file: ppt
Dung lượng: 436.00 KB
Lượt xem: 16
Lượt tải: 0
Xem trước 0 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài này cung cấp kiến thức về xử lý ngoại lệ (Exception). Nội dung chính trong bài giảng gồm: Xử lý lỗi và ngoại lệ, khối try/catch/finally, các lớp ngoại lệ, xây dựng lớp ngoại lệ, lan truyền ngoại lệ, tung lại ngoại lệ. Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Ngôn ngữ lập trình Java: Xử lý ngoại lệ (Exception) - TS. Nguyễn Thị Hiền LECTURE 5XỬ LÝ NGOẠI LỆ (EXCEPTION) 1. Xử lý lỗi và ngoại lệ 2. Khối try/catch/finally 3. Các lớp ngoại lệ 4. Xây dựng lớp ngoại lệ 5. Lan truyền ngoại lệ 6. Tung lại ngoại lệ 7. Bài tậpNGOẠI LỆ • Ngoại lệ là một sự kiện. Mà khi sự kiện đó phát sinh, làm gián đoạn hoặc thay đổi dòng chảy bình thường của chương trình. • Khi một phương thức gặp lỗi nào đó, ví dụ như chia không, vượt kích thước mảng, mở file chưa tồn tại… thì các ngoại lệ sẽ được ném ra. Chương trình dừng lại ngay lập tức, toàn bộ phần mã phía sau sẽ không được thực thi. • Java hỗ trợ cách thức để xử lý ngoại lệ (exception handling) tuỳ theo nhu cầu của chương trình. 2XỬ LÝ LỖI TRUYỀN THỐNG • Trong một số ngôn ngữ như C, việc xử lý lỗi thường được cài đặt ngay tại các bước thực hiện của chương trình. Các hàm sẽ trả về một cấu trúc lỗi khi gặp lỗi. • Ví dụ: int ERROR1=0; ERROR2=1; int f1(double x, double y){// Tính biểu thức 1/x+1/(y-1) if (x==0) return ERROR1; else { if (y==1) return ERROR2; else return 1/x+1/(y-1); } } int f2(double x, double y, double z){// tính z(1/x+1/(y-1)) if (f1(x,y)==ERROR1) …. if (f1(x,y)==ERROR2) …. return z*f1(x,y); } 3XỬ LÝ LỖI TRUYỀN THỐNG Mã lệnh và mã xử lý lỗi nằm xen kẽ khiến lập trình viên khó theo dõi được thuật toán chính của chương trình. Khi một lỗi xảy ra tại hàm A, tất cả các lời gọi hàm lồng nhau đến A đều phải xử lý lỗi mà A trả về. 4XỬ LÝ NGOẠI LỆ• Trong Java, việc xử lý lỗi có thể được cài đặt trong một nhánh độc lập với nhánh chính của chương trình.• Lỗi được coi như những trường hợp ngoại lệ (exceptional conditions). Chúng được bắt/ném (catch and throw) khi có lỗi xảy ra. => Một trường hợp lỗi sẽ chỉ được xử lý tại nơi cần xử lý. => Mã chính của chương trình sáng sủa, đúng với thiết kế thuật toán. 5VÍ DỤ 1 import java.awt.Point; public class MyArray { public static void main(String[ ] args) { System.out.println(Goi phuong thuc methodeX()); methodeX(); System.out.println(Chuong trinh ket thuc binh thuong); } public static void methodeX() { Point[ ] pts = new Point[10]; for(int i = 0; i < pts.length; i++) { pts[i].x = i; // chua tao object pts[i].y = i+1; } } } 6KẾT QUẢ THỰC THI VÍ DỤ 1 GoiphuongthucmethodeX() Exceptioninthreadmainjava.lang.NullPointerException atMyArray.methodeX(MyArray.java:14) atMyArray.main(MyArray.java:7) Giảithích:Hệthốngđãtungramộtexceptionthuộclớp NullPointerExceptionkhigặplỗi.Sauđóchươngtrìnhkếtthúc. 7VÍ DỤ 2 public class MyDivision { public static void main(String[ ] args) { System.out.println(Goi phuong thuc A()); A(); System.out.println(Chuong trinh ket thuc binh thuong); } public static void A() { B(); } public static void B() { C(); } public static void C() { float a = 2/0; } } 8KẾT QUẢ THỰC THI VÍ DỤ 2 GoiphuongthucA() Exceptioninthreadmainjava.lang.ArithmeticException:/byzero atMyDivision.C(MyDivision.java:14) atMyDivision.B(MyDivision.java:11) atMyDivision.A(MyDivision.java:8) atMyDivision.main(MyDivision.java:4) Giảithích:PhươngthứcA()gọiB(),B()gọiC(),C()gâyralỗichiacho 0vàhệthống“ném”ramộtexceptionthuộclớpArithmeticException. Sauđóchươngtrìnhkếtthúc. 9XỬ LÝ NGOẠI LỆ • Khối try/catch – Đặt đoạn mã có khả năng xảy ra ngoại lệ trong khối try – Đặt đoạn mã xử lý ngoại lệ trong khối catch – Khi xảy ra ngoại lệ trong khối try, các câu lệnh trong khối catch sẽ được thực hiện tuỳ vào kiểu của ngoại lệ. – Sau khi thực hiện xong khối catch, điều khiển sẽ được trả lại cho chương trình. 10KHỐI TRY/CATCH • Ví dụ 1: try { methodeX(); System.out.println(“CaulenhngaysaumethodX()”); } catch(NullPointerExceptione) { System.out.println(“Coloitrongkhoitry”); } System.out. ...
Nội dung trích xuất từ tài liệu:
Bài giảng Ngôn ngữ lập trình Java: Xử lý ngoại lệ (Exception) - TS. Nguyễn Thị Hiền LECTURE 5XỬ LÝ NGOẠI LỆ (EXCEPTION) 1. Xử lý lỗi và ngoại lệ 2. Khối try/catch/finally 3. Các lớp ngoại lệ 4. Xây dựng lớp ngoại lệ 5. Lan truyền ngoại lệ 6. Tung lại ngoại lệ 7. Bài tậpNGOẠI LỆ • Ngoại lệ là một sự kiện. Mà khi sự kiện đó phát sinh, làm gián đoạn hoặc thay đổi dòng chảy bình thường của chương trình. • Khi một phương thức gặp lỗi nào đó, ví dụ như chia không, vượt kích thước mảng, mở file chưa tồn tại… thì các ngoại lệ sẽ được ném ra. Chương trình dừng lại ngay lập tức, toàn bộ phần mã phía sau sẽ không được thực thi. • Java hỗ trợ cách thức để xử lý ngoại lệ (exception handling) tuỳ theo nhu cầu của chương trình. 2XỬ LÝ LỖI TRUYỀN THỐNG • Trong một số ngôn ngữ như C, việc xử lý lỗi thường được cài đặt ngay tại các bước thực hiện của chương trình. Các hàm sẽ trả về một cấu trúc lỗi khi gặp lỗi. • Ví dụ: int ERROR1=0; ERROR2=1; int f1(double x, double y){// Tính biểu thức 1/x+1/(y-1) if (x==0) return ERROR1; else { if (y==1) return ERROR2; else return 1/x+1/(y-1); } } int f2(double x, double y, double z){// tính z(1/x+1/(y-1)) if (f1(x,y)==ERROR1) …. if (f1(x,y)==ERROR2) …. return z*f1(x,y); } 3XỬ LÝ LỖI TRUYỀN THỐNG Mã lệnh và mã xử lý lỗi nằm xen kẽ khiến lập trình viên khó theo dõi được thuật toán chính của chương trình. Khi một lỗi xảy ra tại hàm A, tất cả các lời gọi hàm lồng nhau đến A đều phải xử lý lỗi mà A trả về. 4XỬ LÝ NGOẠI LỆ• Trong Java, việc xử lý lỗi có thể được cài đặt trong một nhánh độc lập với nhánh chính của chương trình.• Lỗi được coi như những trường hợp ngoại lệ (exceptional conditions). Chúng được bắt/ném (catch and throw) khi có lỗi xảy ra. => Một trường hợp lỗi sẽ chỉ được xử lý tại nơi cần xử lý. => Mã chính của chương trình sáng sủa, đúng với thiết kế thuật toán. 5VÍ DỤ 1 import java.awt.Point; public class MyArray { public static void main(String[ ] args) { System.out.println(Goi phuong thuc methodeX()); methodeX(); System.out.println(Chuong trinh ket thuc binh thuong); } public static void methodeX() { Point[ ] pts = new Point[10]; for(int i = 0; i < pts.length; i++) { pts[i].x = i; // chua tao object pts[i].y = i+1; } } } 6KẾT QUẢ THỰC THI VÍ DỤ 1 GoiphuongthucmethodeX() Exceptioninthreadmainjava.lang.NullPointerException atMyArray.methodeX(MyArray.java:14) atMyArray.main(MyArray.java:7) Giảithích:Hệthốngđãtungramộtexceptionthuộclớp NullPointerExceptionkhigặplỗi.Sauđóchươngtrìnhkếtthúc. 7VÍ DỤ 2 public class MyDivision { public static void main(String[ ] args) { System.out.println(Goi phuong thuc A()); A(); System.out.println(Chuong trinh ket thuc binh thuong); } public static void A() { B(); } public static void B() { C(); } public static void C() { float a = 2/0; } } 8KẾT QUẢ THỰC THI VÍ DỤ 2 GoiphuongthucA() Exceptioninthreadmainjava.lang.ArithmeticException:/byzero atMyDivision.C(MyDivision.java:14) atMyDivision.B(MyDivision.java:11) atMyDivision.A(MyDivision.java:8) atMyDivision.main(MyDivision.java:4) Giảithích:PhươngthứcA()gọiB(),B()gọiC(),C()gâyralỗichiacho 0vàhệthống“ném”ramộtexceptionthuộclớpArithmeticException. Sauđóchươngtrìnhkếtthúc. 9XỬ LÝ NGOẠI LỆ • Khối try/catch – Đặt đoạn mã có khả năng xảy ra ngoại lệ trong khối try – Đặt đoạn mã xử lý ngoại lệ trong khối catch – Khi xảy ra ngoại lệ trong khối try, các câu lệnh trong khối catch sẽ được thực hiện tuỳ vào kiểu của ngoại lệ. – Sau khi thực hiện xong khối catch, điều khiển sẽ được trả lại cho chương trình. 10KHỐI TRY/CATCH • Ví dụ 1: try { methodeX(); System.out.println(“CaulenhngaysaumethodX()”); } catch(NullPointerExceptione) { System.out.println(“Coloitrongkhoitry”); } System.out. ...
Tìm kiếm theo từ khóa liên quan:
Ngôn ngữ lập trình Ngôn ngữ lập trình Java Xử lý ngoại lệ Các lớp ngoại lệ Xây dựng lớp ngoại lệ Lan truyền ngoại lệGợi ý tài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 274 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 265 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 265 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 232 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 224 0 0 -
Giáo án Tin học lớp 11 (Trọn bộ cả năm)
125 trang 217 1 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 206 0 0 -
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 184 0 0 -
Giáo trình Lập trình C căn bản: Phần 1
64 trang 170 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 166 0 0