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

Bài giảng Tin học đại cương 2: Chương 4.2 - Nguyễn Thị Mỹ Truyền

Chia sẻ: 5A4F5AFSDG 5A4F5AFSDG | Ngày: | Loại File: PPTX | Số trang:29

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

Chương 4.2 cung cấp kiến thức về ngoại lệ. Nội dung chính trong chương này gồm: Phân loại lỗi, ngoại lệ, xử lý ngoại lệ, phân cấp ngoại lệ trong Java, ngoại lệ do người dùng định nghĩa. Mời các bạn cùng tham khảo.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Tin học đại cương 2: Chương 4.2 - Nguyễn Thị Mỹ Truyền

  1. Chương 4.2 Ngoại lệ
  2. Chương 4.2: Ngoại lệ o Phân loại lỗi o Ngoại lệ o Xử lý ngoại lệ o Phân cấp ngoại lệ trong Java o Ngoại lệ do người dùng định nghĩa
  3. Phân loại lỗi
  4. Lỗi cú pháp
  5. Lỗi thực thi
  6. Lỗi luận lý
  7. Ngoại lệ
  8. Ngoại lệ import java.util.*; public class Exception_Ex1 { public static void main(String[] args){ Scanner scanIn=new Scanner(System.in); System.out.print("Enter the first number (a):"); int a = scanIn.nextInt(); System.out.print("Enter the second number (b):"); int b = scanIn.nextInt(); System.out.print("a/b = " + a/b); } }
  9. Xử lý ngoại lệ truyền thống o Viết mã xử lý tại nơi phát sinh ra lỗi § Làm cho chương trình trở nên rối § Không phải lúc nào cũng đầy đủ thông tin để xử  lý § Không nhất thiết phải xử lý o Truyền trạng thái lên mức trên § Thông qua tham số, giá trị trả lại hoăc bi ̣ ến tổng  thể (flag)  § Dễ nhầm § Vẫn còn khó hiểu
  10. Xử lý ngoại lệ truyền thống o Khó kiểm soát được hết các trường hợp § Lỗi số học, lỗi bô nh ̣ ớ,… o Lập trình viên thường quên không xử lý lỗi § Bản chất con người § Thiếu kinh nghiệm, cố tình bỏ qua
  11. Mục đích xử lý ngoại lệ o Dễ sử dụng § Dễ dàng chuyển điều khiển đến nơi có khả năng  xử lý ngoại lệ § Có thể ném nhiều loại ngoại lệ o T ách xử lý ngoại lệ khỏi thuật toán § Tách mã xử lý § Sử dụng cú pháp khác o Kh ông bỏ sót ngoại lệ (ném tự động) o L àm chương trình dễ đọc hơn, an toàn hơn.
  12. Xử lý ngoại lệ
  13. Xử lý ngoại lệ public static void main(String[] args){ System.out.print("Enter the first number (a):"); Scanner scanIn=new Scanner(System.in); int a = scanIn.nextInt(); System.out.print("Enter the second number (b):"); int b = scanIn.nextInt(); try{ System.out.print("a/b = " + a/b); //đoạn code có khả năng xảy ra ngoại lệ }catch(ArithmeticException ex){ System.out.print(“Không được chia cho 0"); //đoạn code xử lý ngoại lệ
  14. Xử lý ngoại lệ public static void main(String[] args){ System.out.print("Enter the first number (a):"); Scanner scanIn=new Scanner(System.in); int a = scanIn.nextInt(); System.out.print("Enter the second number (b):"); int b = scanIn.nextInt(); try{ System.out.print("a/b = " + a/b); //đoạn code có khả năng xảy ra ngoại lệ } catch(Exception e){ System.err.println("Co loi xay ra: " + e.toString()); 
  15. Khối try – catch lồng nhau o  Những phần nhỏ trong khối mã sinh ra môt lô ̣ ̃i,  nhưng toàn bô c ̣ ả khối thì lại sinh ra môt lô ̣ ̃i khác ­>  Cần có các xử lý ngoại lệ lồng nhau.  o Khi các khối try lồng nhau, khối try bên trong sẽ được thực hiện trước. try {  // Doan code co the gay ra IOException  try {  // Doan ma co the gay ra NumberFormatException  } catch (NumberFormatException e1) {  // Xu ly loi sai dinh dang so }  } catch (IOException e2) {  // Xu ly loi vao ra  }
  16. Nhiều khối catch o ̣  Môt đo ạn mã có thể gây ra nhiều hơn môt ngo ̣ ại lệ  ­>Sử dụng nhiều khối catch try {  // Doan ma co the gay ra nhieu ngoai le, loi nhap/xuat,  chia cho 0,… } catch (ExceptionType1 e1) {  // Xu ly ngoai le 1 } catch (ExceptionType2 e2) {  // Xu ly ngoai le 2 }
  17. Nhiều khối catch class MultipleCatch1{ public static void main(String args[]){       try{ String num = args[0]; int numValue = Integer.parseInt(num); System.out.println("Dien tich hv la: " + numValue *  numValue);       }catch(ArrayIndexOutOfBoundsException e1) { System.out.println(“Hay nhap canh cua hv!");      } catch(NumberFormatException e2){ System.out.println(“Hay nhap 1 so!");      } } } 
  18. Khối FINALLY o Khi một ngoại lệ xảy ra, chương trình dừng lại,  một số công việc “dọn dẹp” có thể sẽ không  được thực hiện (ví dụ như đóng file). o Khối finally đảm bảo rằng các câu lệnh trong đó  luôn được thực hiện, kể cả khi ngoại lệ xảy ra. 18
  19. Khối FINALLY FileInputStream f = null; try { f = new FileInputStream(“d:/somefile.txt"); // đọc file } catch (IOException e) { // hiển thị lỗi } finally { if (f != null) { try { f.close(); // đóng file
  20. Phân cấp ngoại lệ trong Java Object Throwable Error Exception AssertionError RuntimeException IOException ClassNotFoundException NullPointerException ArithmeticException
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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