1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng lập trình java cơ bản chương 3 ngoại lệ GV võ hoàng phương dung

18 222 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 18
Dung lượng 255,76 KB

Nội dung

LẬP TRÌNH JAVA Chương NGOẠI LỆ GV: Võ Hoà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 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 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 [...]... 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 của phương pháp xử lý ngoại lệ là gì?  Khi nào nên sử dụng phương pháp  • Bắt và xử lý ngoại lệ tại chỗ: try … catch • Ném ngoại lệ lên các lớp trên: throw,throws 18/25 ... 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ó 2 loại ngoại lệ • Cần kiểm tra: trình biên dịch luôn kiểm tra xem chúng ta có viết code xử lý các ngoại lệ này... Không cần kiểm tra  Ngoại lệ runtime (Runtime exception) 14/25 Các loại Exception  Ví dụ về ngoại lệ cần được 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 1 lớp xử lý ngoai lệ riêng bằng cách thừa...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 ...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... 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:... 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:

Ngày đăng: 03/12/2015, 18:23

TỪ KHÓA LIÊN QUAN