1. Trang chủ
  2. » Cao đẳng - Đại học

SLIDE MÔN JAVA - CHƯƠNG 4 - NGOẠI LỆ

19 279 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 263 KB

Nội dung

LẬP TRÌNH JAVA Chương NGOẠI LỆ GV: Đoàn Thanh Sơn 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 Có nhóm ngoại lệ sau: Checked: đọc file không tồn Lúc dịch java yêu cầu phải bắt ngoại lệ Runtime: chia số Lúc dịch java không kiểm tra Nhưng LTV cần tiên đoán tự bắt ngoại lệ Errors: stack overflow Ngoài kiểm soát java LTV Lúc dịch java không yêu cầu kiểm tra CT không khôi phục 3/25 Định nghĩa ngoại lệ 4/25 Định nghĩa ngoại lệ  Khi đối tượng ngoại lệ phát sinh, thuộc lớp đặc thù thừa kế từ gốc lớp Exception Lớp Exception  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ệ.   5/25 Định nghĩa ngoại lệ Một số lớp ngoại lệ đặc thù gồm:  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.  6/25 1.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 } 7/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 8/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");} } } 9/25 Bắt giữ & xử lý ngoại lệ 10/25 2.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 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){ if(i==0) throw new ArithmeticException(); else System.out.println(num/i); } } 12/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); } } 13/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(); } 14/25 Các loại Exception  Có loại ngoại lệ • Cần kiểm tra: trình biên dịch 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) 15/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) { }  16/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  {    } 17/25 Đinh nghĩa lớp ngoại lệ Ví dụ public class MyException extends Exception { public MyException () { } public MyException (String msg) { super (msg); } }  18/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 19/25 ... 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 Có nhóm ngoại lệ sau: Checked: đọc file không tồn Lúc dịch java. .. số Lúc dịch java không kiểm tra Nhưng LTV cần tiên đoán tự bắt ngoại lệ Errors: stack overflow Ngoài kiểm soát java LTV Lúc dịch java không yêu cầu kiểm tra CT không khôi phục 3 /25 Định nghĩa... System.out.println("error"); } finally{ System.out.println("finished");} } } 9 /25 Bắt giữ & xử lý ngoại lệ 10 /25 2. Chuyển tiếp ngoại lệ    Ngoại lệ chuyển đến phương thức gọi, quản lý ngoại

Ngày đăng: 23/06/2017, 20:17

TỪ KHÓA LIÊN QUAN