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

Bài giảng Object-Oriented programming: Chương 7 - Văn Thị Thiên Trang

Chia sẻ: Nhân Chi Sơ | Ngày: | Loại File: PDF | Số trang:9

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

Chương 7 – Xử lý ngoại lệ. Chương này trình bày những nội dung chính sau đây: Khái niệm, các loại lỗi, xử lý ngoại lệ, cấu trúc các lớp quản lý lỗi, lớp Throwable, lớp Exception, bắt ngoại lệ, lan truyền lỗi, ném ra ngoại lệ, tự định nghĩa exception. Mời các bạn cùng tham khảo.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Object-Oriented programming: Chương 7 - Văn Thị Thiên Trang

Mục tiêu<br /> <br /> Chương 7.<br /> <br /> Giải thích được lỗi cú pháp và lỗi thực thi<br /> chương trình<br /> trình.<br /> Giải thích được mô hình đối tượng Exception<br /> của Java.<br /> Giải thích được cú pháp bẫy lỗi bằng<br /> try...catch... finally.<br /> finally.<br /> Sử d<br /> dụng đ<br /> được th<br /> throw và th<br /> à throws trong code,<br /> t<br /> d<br /> Tự định nghĩa được Exception.<br /> <br /> XỬ LÝ NGOẠI LỆ<br /> <br /> 2/34<br /> <br /> Nội dung<br /> <br /> 1. Khái niệm<br /> Ngoại lệ (Exception): là những điều<br /> khô<br /> không mong muốn xảy ra khi thực hiệ<br /> ố<br /> ả<br /> thự hiện<br /> chương trình Java.<br /> Lỗi thi hành là một dạng ngoại lệ<br /> Ví dụ:<br /> <br /> 1. Khái niệm<br /> <br /> 2. Các l i<br /> 2 Cá loại lỗi<br /> 3. Xử lý ngoại lệ<br /> 4. Cấu trúc các lớp quản lý lỗi<br /> 5. Lớp Throwable<br /> 6. Lớp Exception<br /> 7. Bắt ngoại lệ<br /> 8. Lan truyền lỗi<br /> 9. Ném ra ngoại lệ<br /> 10. Tự định nghĩa Exception<br /> <br /> • Thực hiện phép chia cho 0<br /> 0.<br /> • Khi đọc một tập tin không tồn tại.<br /> • Khi thao tác vượt quả chỉ số mảng.<br /> 3/34<br /> <br /> 4/34<br /> <br /> 1<br /> <br /> 1. Khái niệm<br /> <br /> 1. Khái niệm<br /> <br /> 5/34<br /> <br /> 2. Các loại lỗi<br /> <br /> Bài toán<br /> <br /> Hiện<br /> thực<br /> <br /> Code<br /> <br /> ?<br /> <br /> CompileCompile-time error = Syntax error<br /> <br /> Correct result<br /> <br /> Run- i<br /> Run-time error = Exception, tình h ố<br /> ì h huống bấ<br /> bất<br /> bình thường đã xẩy ra trong khi chương trình<br /> thực thi.<br /> <br /> Compile<br /> No<br /> Syntax error<br /> <br /> Wrong result<br /> END<br /> <br /> 2. Các loại lỗi<br /> <br /> Syntax error<br /> <br /> BEGIN<br /> <br /> Run<br /> <br /> 6/34<br /> <br /> Chương trình<br /> <br /> Run-time error<br /> ( Eception )<br /> <br /> Khi có Exception:<br /> • Có thể là máy bị treo (<br /> y ị<br /> (halt).<br /> )<br /> • Chương trình ngắt đột ngột, điều khiển trả về cho<br /> OS, OS thu hồi bộ nhớ của chương trình.<br /> <br /> Cần có cơ chế điều khiển tình huống này.<br /> 7/34<br /> <br /> 8/34<br /> <br /> 2<br /> <br /> 3. Xử lý ngoại lệ<br /> <br /> 4. Cấu trúc các lớp quản lý lỗi<br /> <br /> Java là ngôn ngữ mạnh (robust) bắt các<br /> ngoại lệ<br /> lệ.<br /> Khi có run-time error, thông tin về lỗi này<br /> runđược máy ảo tự động phát ra thông qua<br /> một đối tượng Exception. Đối tượng này có<br /> thể bẫy từ chương trình nhờ cơ chế giao<br /> tiếp giữa máy ảo và chương trình.<br /> Java cung cấp một tập rất nhiều lớp mô tả<br /> các lỗi trong gói java.lang.<br /> Tham khảo Java Documentation.<br /> 9/34<br /> <br /> 5. Lớp Throwable<br /> <br /> 10/34<br /> 10/34<br /> <br /> 6. Lớp Exception<br /> <br /> Các lớp Exception đều được dẫn ra từ<br /> lớp à<br /> lớ này.<br /> Chứa các hành vi giúp truy xuất thông<br /> tin về lỗi như:<br /> • nội dung mô tả lỗi : getMesage(),<br /> g()<br /> toString()<br /> • nội dung stack lúc gây lỗi:<br /> getStackTrace(), printStackTrace(),<br /> • ....<br /> <br /> Khi xảy ra ngoại lệ, Java ném ra một đối<br /> tượng ứng với ngoại lệ.<br /> lệ.<br /> Các đối tượng ngoại lệ sinh ra từ các lớp con<br /> của lớp Exception.<br /> Exception.<br /> Lớp Exception là lớp cơ sở cho các ngoại lệ.<br /> lệ.<br /> Các phương thức của lớp Exception.<br /> Exception.<br /> • printStackTrace(): in chi tiết thông báo ngoại lệ.<br /> printStackTrace():<br /> lệ.<br /> • toString(): trả về xâu thông báo ngoại lệ.<br /> toString():<br /> lệ.<br /> <br /> 11/34<br /> 11/34<br /> <br /> 12/34<br /> 12/34<br /> <br /> 3<br /> <br /> 6. Lớp Exception<br /> class<br /> <br /> 6. Lớp Exception<br /> <br /> Giải thích<br /> <br /> Exception<br /> <br /> Lớp nền của các run-time error<br /> run-<br /> <br /> RuntimeException<br /> <br /> Lớp nền của nhiều lớp run-time<br /> runerror<br /> <br /> ArithmeticException<br /> <br /> Lỗi do thực thi một phép toán<br /> <br /> IllegalArgumentException<br /> <br /> Lỗi sai đối số của hàm<br /> <br /> class<br /> <br /> Giải thích<br /> <br /> SecurityException<br /> <br /> Lỗi do truy cập bị cấm<br /> <br /> ClassNotFoundException<br /> <br /> Lỗi xuất nhập<br /> <br /> FileNotFoundException<br /> <br /> Lỗi do không tìm thấy file<br /> Lỗi do cố truy cập nội dung 1 file<br /> khi đã ở cuối file<br /> Lỗi do truy cập 1 class bị cấm<br /> <br /> NoSuchMethodExceptio<br /> n<br /> <br /> Lỗi do viết sai tên hành vi<br /> <br /> InterruptedException<br /> <br /> Lỗi do truy xuất một đối tượng<br /> mà chưa khởi tạo<br /> <br /> IOException<br /> <br /> IllegalAccessException<br /> <br /> NullPointerException<br /> <br /> Lỗi do không đúng dạng số<br /> <br /> EOFException<br /> <br /> ArrayIndexOutOfBoundsExcepti Lỗi do chỉ số ngoài tầm của<br /> on<br /> mảng<br /> <br /> NumberFormatExceptio<br /> n<br /> <br /> Lỗi do ngắt ngang 1 luồng lệnh<br /> đang được thực thi<br /> <br /> Lỗi do không tìm thấy file.class<br /> <br /> 13/34<br /> 13/34<br /> <br /> 7. Bắt ngoại lệ<br /> <br /> 14/34<br /> 14/34<br /> <br /> 7. Bắt ngoại lệ<br /> <br /> Có thể bắt và xử lý ngoại lệ bằng khối try ..<br /> Catch:<br /> Try{<br /> Khối lệnh có khả năng xuất hiện ngoại lệ<br /> }<br /> Catch(Exception e1){ xử lý ngoại lệ e1 }<br /> Catch(Exception e2){ xử lý ngoại lệ e2 }<br /> Catch(Exception en){ Xử lý ngoại lệ en }<br /> C t h(E<br /> ti<br /> ){<br /> i<br /> Finally{ Thực hiện sau khi xử lý ngoại lệ }<br /> <br /> Chức năng:<br /> • Nếu các lệnh trong khối try{..} có ngoại lệ<br /> ném ra thì sẽ so sánh với các loại ngoại lệ<br /> trong catch(..).<br /> • Nếu đúng ngoại lệ trong catch thì thực<br /> hiện các lệnh xử lý ngoại lệ tương ứng.<br /> • Các lệnh trong khối finally được thực hiện<br /> dù có hay không có ngoại lệ.<br /> <br /> 15/34<br /> 15/34<br /> <br /> 16/34<br /> 16/34<br /> <br /> 4<br /> <br /> 7. Bắt ngoại lệ<br /> <br /> 7. Bắt ngoại lệ<br /> <br /> 17/34<br /> 17/34<br /> <br /> 7. Bắt ngoại lệ<br /> <br /> 18/34<br /> 18/34<br /> <br /> 7. Bắt ngoại lệ<br /> <br /> Mảng 5 phần tử mà<br /> lại truy cập a[10]<br /> Bẫy lỗi mức tổng quát<br /> <br /> 19/34<br /> 19/34<br /> <br /> Mảng 5 phần tử<br /> mà lại truy cập<br /> a[10]<br /> Bẫy lỗi cụ thể<br /> <br /> 20/34<br /> 20/34<br /> <br /> 5<br /> <br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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