Chương 6 LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC

Chia sẻ: Lan Lan | Ngày: | Loại File: PPT | Số trang:40

0
41
lượt xem
4
download

Chương 6 LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Lớp trừu tượng- abstract class- là sản phẩm của qúa trình khái quát hóa qúa cao. Lớp trừu tượng là lớp có hành vi trừu tượng. Cú pháp khai báo lớp trừu tượng abstract class A

Chủ đề:
Lưu

Nội dung Text: Chương 6 LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC

  1. Chương 6 LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC Exception – Garbage Collection Slide 1/41
  2. ÔN TẬP Lớp trừu tượng- abstract class- là sản phẩm của qúa trình khái quát hóa qúa cao. Lớp trừu tượng là lớp có hành vi trừu tượng. Cú pháp khai báo lớp trừu tượng abstract class A { .... abstract [modifier] Type Method(args); } public, protected, friendly Slide 2/41
  3. Ôn tập Lớp cụ thể (concrete class) là lớp chỉ chứa các hành cụ thể (có code). Lớp con của một lớp trừu tượng mà chưa cụ thể hóa một hành vi trừu tượng thừa kế từ lớp cha thì lớp con này cùng là lớp trừu tượng. Slide 3/41
  4. Mục tiêu Giải thích được lỗi cú pháp và lỗi thực thi chương trình. Giải thích được mô hình đối tượng Exception của Java. Giải thích được cú pháp bẫy lỗi bằng try...catch... finally. Sử dụng được throw và throws trong code, Tự định nghĩa được Exception. Giải thích được cơ chế gom rác của Java. Slide 4/41
  5. Nội dung 6.1- Các loại lỗi của chương trình 6.2- Cấu trúc các lớp quản lý lỗi của Java. 6.3- Bẫy lỗi bằng try...catch...finally 6.4- Lan truyền lỗi 6.5- Xuất Exception 6.6- Tự định nghĩa Exception 6.7- Cơ chế gom rác Slide 5/41
  6. 6.1- Các loại lỗi của chương trình Syntax error BEGIN Hiện Compile Bài toán Code thực No Wrong result Syntax error END Run Chương trình Correct result Run-time error ? ( Exception ) Slide 6/41
  7. Các loại lỗi của chương trình Compile-time error = Syntax error Run-time error = Exception, tình huống bất bình thường đã xẩy ra trong khi chương trình thực thi. Khi có Exception: – Có thể là máy bị treo (halt). – Chương trình ngắt đột ngột, điều khiển trả về cho OS, OS thu hồi bộ nhớ của chương trình ( đuổi ra ngoài ). Cần có cơ chế điều khiển tình huống này. Slide 7/41
  8. 6.2- Cấu trúc các lớp quản lý lỗi của Java Java là ngôn ngữ mạnh (robust) nên có các hỗ trợ giúp tối thiểu hóa các exception. Khi có run-time error, thông tin về lỗi này được máy ảo tự động phát ra thông qua một đối tượng Exception. Đây là đối tượng được phát sinh động (dynamic thrown object) từ máy ảo, Đối tượng này có thể bẫy từ chương trình nhờ cơ chế giao tiếp giữa máy ảo và chương trình. Java cung cấp một tập rất nhiều các lớp mô tả các lỗi cùng với cơ chế bẫy lỗi giúp developer có thể quản lý các exception trong code của chương trình. Gói java.lang định nghĩa rất nhiều lớp lỗi run-time. Tham khảo Java Documentation. Slide 8/41
  9. Cấu trúc các class quản lý lỗi của Java Object Throwable Error Exception AWTError SQLException RuntimeException ThreadDead ClassNotFoundException ArithmeticException … … NullPointerException NumberFormatException Khi 1 error/exception xẩy ra, ta nói rằng nó bị “thrown” (throw) … Slide 9/41
  10. Lớp Throwable Các lớp Exception đều được dẫn ra từ lớp này. Chứa các hành vi giúp truy xuất thông tin về lỗi như: – nội dung mô tả lỗi : getMesage(), toString() – nội dung stack lúc gây lỗi: getStackTrace(), printStackTrace(), – .... Slide 10/41
  11. Một số lớp quản lý lỗi của Java Giải thích class Lớp nền của các run-time error Exception Lớp nền của nhiều lớp run-time RuntimeException error Lỗi do thực thi một phép toán ArithmeticException Lỗi sai đối số của hàm IllegalArgumentException Lỗi do chỉ số ngoài tầm của mảng ArrayIndexOutOfBoundsException Lỗi do truy xuất một đối tượng mà NullPointerException chưa khởi tạo Lỗi do truy cập bị cấm SecurityException Lỗi do không tìm thấy file.class ClassNotFoundException Slide 11/41
  12. Một số lớp quản lý lỗi của Java Giải thích class Lỗi do không đúng dạng số NumberFormatException Lỗi xuất nhập IOException Lỗi do không tìm thấy file FileNotFoundException Lỗi do cố truy cập nội dung 1 file khi EOFException đã ở cuối file Lỗi do truy cập 1 class bị cấm IllegalAccessException Lỗi do viết sai tên hành vi NoSuchMethodException Lỗi do ngắt ngang 1 luồng lệnh đang InterruptedException được thực thi Slide 12/41
  13. 6.3-Bẫy lỗi bằng try...catch...finally Để chương trình vẫn có thể tiếp try { < các lệnh thử làm> tục hoạt động, } người lập trình catch ( Exception1 e1) cần phải dự { < code xử lý lỗi> } đoán lỗi có thể catch ( Exception2 e2) xẩy ra để bẫy { < code xử lý lỗi> lỗi. } finally Bẫy lỗi bằng cú { } pháp: // Buộc phải có {...} dù chỉ có 1 phát biểu try...catch ...finally ... Slide 13/41
  14. Bẫy lỗi bằng try...catch...finally Dự đoán lỗi: – Tại một thời điểm, developer có thể dự đoán chính xác các lỗi có thể xẩy ra. Thí dụ: Nhập dữ liệu từ bàn phím vào 1 số thông qua hộp thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. – Có thể tổng quát hoá các lỗi nhờ lớp cha (Exception) để quản lý chung. Slide 14/41
  15. Bẫy lỗi- Thí dụ Slide 15/41
  16. Bẫy lỗi – Thí dụ Slide 16/41
  17. Bẫy lỗi mức tổng quát Dùng đối tượng mức tổng quát ( lớp Exception). Xem lại hình vẽ về cấu trúc quản lý lỗi của Java trong các slide trước Slide 17/41
  18. Bẫy lỗi tham khảo mảng ngoài tầm chỉ số Mảng 5 phần tử mà lại truy cập a[10] Bẫy lỗi mức tổng quát Slide 18/41
  19. Bẫy lỗi tham khảo mảng ngoài tầm chỉ số Mảng 5 phần tử mà lại truy cập a[10] Bẫy lỗi cụ thể Slide 19/41
  20. 6.4- Lan truyền lỗi Exception propagation Lỗi lan truyền từ trong ra cho đến khi gặp bẫy lỗi hoặc tới main và ứng dụng bị ngưng. catch(...) A() Chiều lan truyền lỗi B() C() Chiều gọi hàm D() Exception Slide 20/41

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản