Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
256,5 KB
Nội dung
LẬP TRÌNH JAVA Chương NGOẠI LỆ GV: Võ Hồng Phương Dung Nội dung Định nghĩa ngoại lệ (Exception) Bắt giữ & xử lý ngoại lệ Chuyển tiếp (Ném) ngoại lệ Định nghĩa lớp Ngoại lệ 2/25 Định nghĩa ngoại lệ Ngoại lệ (Exception): kiện xuất trình thực thi chương trình gây phá vỡ dịng thực thi chương trình Ví dụ: đọc file khơng tồn Lớp Exception • Là lớp cha cho tất lớp thể ngoại lệ. • phương thức thông dụng lớp Exception. toString(): Trả chuỗi mô tả Ngoại lệ. printStackTrace(): In thông tin chi tiết Ngoại lệ, method gây ngoại lệ, dòng code xảy ngoại lệ. 3/25 Định nghĩa ngoại lệ 4/25 Định nghĩa ngoại lệ ArithmeticException: xảy Chương trình có lỗi đại số VD: Chia cho 0. NumberFormatException: Xảy thực chuyển đổi chuỗi không hợp lệ sang kiểu số. NullPointerException: Xảy đối tượng chưa khởi tạo mà truy cập đến thành phần đối tượng đó. ArrayIndexOutOfBoundException: Xảy truy cập đến phần tử mảng có số bé khơng hoặc lớn kích thước mảng. 5/25 Bắt giữ & xử lý ngoại lệ Cú pháp try { // Khối code gây ngoại lệ } catch(ExceptionType name) { // Khối code xử lý ngoại lệ } … catch(ExceptionType name) {…} finally{ // Khối code giải phóng tài nguyên } 6/25 Bắt giữ & xử lý ngoại lệ Khối try kèm khối catch finally Có thể có nhiều khối catch sau khối try Khối finally thực Nhiều khối try … catch lồng 7/25 Bắt giữ & xử lý ngoại lệ public class MyException { public static void main(String args[]){ calculate(9,0); } public static void calculate(int num, int i){ try{ System.out.println(num/i); }catch(ArithmeticException e){ System.out.println("error"); } finally{ System.out.println("finished");} } } 8/25 Bắt giữ & xử lý ngoại lệ 9/25 Chuyển tiếp ngoại lệ Ngoại lệ chuyển đến phương thức gọi, quản lý ngoại lệ tìm thấy, kết thúc throw: Dùng để ném ngoại lệ mà không xử lý phương thức. throws: Dùng đế khai báo danh sách ngoại lệ mà phương thức ném 10/25 Chuyển tiếp ngoại lệ public class MyException { public static void main(String args[]){ try{ calculate(9,0); }catch(ArithmeticException e){ System.out.println("error"); }finally{ System.out.println("finished"); } } public static void calculate(int num, int i){ if(i==0) throw new ArithmeticException(); else System.out.println(num/i); } } 11/25 Chuyển tiếp ngoại lệ public class MyException { public static void main(String args[]){ try{ calculate(9,0); }catch(ArithmeticException e){ System.out.println("error"); }finally{ System.out.println("finished"); } } public static void calculate(int num, int i) throws ArithmeticException{ System.out.println(num/i); } } 12/25 Chuyển tiếp ngoại lệ void writeList() throws IOException, ArrayIndexOutOfBoundsException { PrintWriter out = new PrintWriter(new FileWriter("OutFile.txt")); for (int i = 0; i < SIZE; i++) { out.println("Value at: " + i + " = " + vector.elementAt(i)); } out.close(); } 13/25 Các loại Exception Có loại ngoại lệ • Cần kiểm tra: trình biên dịch ln kiểm tra xem có viết code xử lý ngoại lệ khơng Ví dụ: IOException • Khơng cần kiểm tra Ngoại lệ runtime (Runtime exception) 14/25 Các loại Exception Ví dụ ngoại lệ cần kiểm tra InputStreamReader reader; BufferedReader bufReader; reader = new InputStreamReader(System.in); bufReader = new BufferedReader(reader); try { String s = bufReader.readLine(); } catch (IOException e) { } 15/25 Định nghĩa lớp ngoại lệ Có thể tạo lớp xử lý ngoai lệ riêng cách thừa kế từ lớp Exception từ lớp Exception Cú pháp class MyException extends Exception { } 16/25 Đinh nghĩa lớp ngoại lệ Ví dụ public class MyException extends Exception { public MyException () { } public MyException (String msg) { super (msg); } } 17/25 Thảo luận Ưu điểm phương pháp xử lý ngoại lệ gì? Khi nên sử dụng phương pháp • Bắt xử lý ngoại lệ chỗ: try … catch • Ném ngoại lệ lên lớp trên: throw,throws 18/25 ... nghĩa ngoại lệ (Exception) Bắt giữ & xử lý ngoại lệ Chuyển tiếp (Ném) ngoại lệ Định nghĩa lớp Ngoại lệ 2/25 Định nghĩa ngoại lệ Ngoại lệ (Exception): kiện xuất trình thực thi chương trình. .. In thông tin chi tiết Ngoại lệ, method gây ngoại lệ, dòng code xảy ngoại lệ. 3/25 Định nghĩa ngoại lệ 4/ 25 Định nghĩa ngoại lệ ArithmeticException: xảy Chương trình có lỗi đại số VD:... System.out.println("finished");} } } 8/25 Bắt giữ & xử lý ngoại lệ 9/25 Chuyển tiếp ngoại lệ Ngoại lệ chuyển đến phương thức gọi, quản lý ngoại lệ tìm thấy, kết thúc throw: Dùng để ném ngoại lệ mà không xử lý phương thức.