tailieunhanh - Bài giảng Ngôn ngữ lập trình Java: Xử lý ngoại lệ (Exception) - TS. Nguyễn Thị Hiền
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ệ. . | LECTURE 5 XỬ LÝ NGOẠI LỆ (EXCEPTION) 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ệ Bài tập 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. NGOẠI LỆ 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){// . | LECTURE 5 XỬ LÝ NGOẠI LỆ (EXCEPTION) 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ệ Bài tập 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. NGOẠI LỆ 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); } XỬ 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ề. XỬ LÝ LỖI TRUYỀN THỐNG 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. XỬ LÝ NGOẠI LỆ import ; public class MyArray { public static void main(String[ ] args) { ("Goi phuong thuc methodeX()"); methodeX(); ("Chuong trinh ket thuc binh thuong"); } public static void methodeX() { Point[ ] pts = new Point[10]; .
đang nạp các trang xem trước