intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Nguyễn Hà | Ngày: | Loại File: PDF | Số trang:18

131
lượt xem
16
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Chương 3 Ngoại lệ thuộc bài giảng lập trình Java cơ bản, cùng nắm kiến thức trong chương này thông qua việc tìm hiểu các nội dung chính sau: đị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ệ mới.

Chủ đề:
Lưu

Nội dung Text: 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

  1. LẬP TRÌNH JAVA Chương 3 NGOẠI LỆ GV: Võ Hoàng Phương Dung
  2. 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ệ mới 2/25
  3. Định nghĩa ngoại lệ  Ngoại lệ (Exception): là sự kiện xuất hiện trong quá trình thực thi của chương trình và gây phá vỡ dòng thực thi của chương trình.  Ví dụ: đọc 1 file không tồn tại  Lớp Exception • Là lớp cha cho tất cả các lớp thể hiện ngoại lệ. • 2 phương thức thông dụng trong lớp Exception.  toString(): Trả về một chuỗi mô tả về Ngoại lệ.  printStackTrace(): In ra thông tin chi tiết về Ngoại lệ, như các method gây ra ngoại lệ, dòng code xảy ra ngoại lệ. 3/25
  4. Định nghĩa ngoại lệ 4/25
  5. Định nghĩa ngoại lệ  ArithmeticException: xảy ra khi Chương trình có các lỗi đại số. VD: Chia cho 0.  NumberFormatException: Xảy ra khi thực hiện chuyển đổi chuỗi không hợp lệ sang kiểu số.  NullPointerException: Xảy ra khi một đối tượng chưa được khởi tạo mà đã truy cập đến thành phần của đối tượng đó.  ArrayIndexOutOfBoundException: Xảy ra khi truy cập đến phần tử của mảng có chỉ số bé hơn không hoặc hoặc lớn hơn kích thước của mảng. 5/25
  6. Bắt giữ & xử lý ngoại lệ  Cú pháp try { // Khối code gây ra 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
  7. Bắt giữ & xử lý ngoại lệ  Khối try đi kèm ít nhất 1 khối catch hoặc finally  Có thể có nhiều khối catch sau 1 khối try  Khối finally luôn được thực hiện  Nhiều khối try … catch có thể lồng nhau 7/25
  8. 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 }
  9. Bắt giữ & xử lý ngoại lệ 9/25
  10. Chuyển tiếp ngoại lệ  Ngoại lệ được chuyển đến các phương thức gọi, cho đến khi một bộ quản lý ngoại lệ được tìm thấy, hoặc kết thúc.  throw: Dùng để ném ra một ngoại lệ mà không xử lý trong phương thức.  throws: Dùng đế khai báo danh sách các ngoại lệ mà phương thức có thể ném ra 10/25
  11. 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
  12. 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
  13. 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
  14. 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  Ví dụ: IOException • Không cần kiểm tra  Ngoại lệ runtime (Runtime exception) 14/25
  15. 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
  16. Đị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 kế từ lớp Exception hoặc từ lớp con của Exception  Cú pháp class MyException extends Exception { ... } 16/25
  17. Đ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
  18. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2