Chương 4: Xử lý ngoại tệ

Chia sẻ: Luong Truyen | Ngày: | Loại File: PPT | Số trang:17

0
130
lượt xem
66
download

Chương 4: Xử lý ngoại tệ

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

Tham khảo tài liệu 'chương 4: xử lý ngoại tệ', công nghệ thông tin, cơ sở dữ liệu phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Chương 4: Xử lý ngoại tệ

  1. Java Object-Oriented Programming  Giảng viên : Nguyễn Đức Hiển  Email : ndhien@udn.vn  Website :  Thời lượng  Lýthuyết : 2 tín chỉ (30 tiết)  Thực hành + thảo luận : 1 tín chỉ Nguyễn Đức Hiển – Bài giảng Lập trình Java 1
  2. Chương 4 Xử lý Ngoại lệ (Processing Exception) Nguyễn Đức Hiển – Bài giảng Lập trình Java 2
  3. Nội dung  Ngoại lệ là gì ?  Xử lý Ngoại lệ Nguyễn Đức Hiển – Bài giảng Lập trình Java 3
  4. Giới thiệu  Java có sẵn cơ chế cho việc kiểm soát lỗi và bẫy lỗi  Cơ chế này giải quyết những sự kiện bất thường hay mã xử lý cản trở chương trình tiếp tục thực hiện như:  Truy cập ngoài giới hạn mảng  Chia cho 0  Những con trỏ Null …  Các Ngoại lệ (Exception) cho phép chúng ta kiểm soát các sự kiện này tự động khi chúng xảy ra Nguyễn Đức Hiển – Bài giảng Lập trình Java 4
  5. Ngoại lệ là gì?  Một Ngoại lệ (Exception) là một lớp Java  Có nhiều lớp dẫn xuất của lớp Exception, mỗi lớp tương ứng với một kiểu lỗi khác nhau hay sự kiện bất thường mà chúng ta muốn kiểm soát  Cách Java phát sinh Ngoại lệ  Khi có lỗi hoặc sự kiện bất thường xuất hiện trong đoạn chương trình, Java sẽ throw (ném ra) một Ngoại lệ.  Điều này có nghĩa rằng nó sẽ khởi tạo một lớp dẫn xuất của lớp Exception.  Khi đó phải cần một cơ chế để catching (bắt) trong đoạn chương trình đó. Nguyễn Đức Hiển – Bài giảng Lập trình Java 5
  6. Ném Ngoại lệ  Thực chất, việc ném ra các Ngoại lệ trong Java là một cách phương thức kết thúc xử lý  Ví dụ: Nguyễn Đức Hiển – Bài giảng Lập trình Java 6
  7. Bắt Ngoại lệ (Catching Exception)  Lúc bạn gọi một phương thức đã được khai báo có khả năng ném ra một Ngoại lệ, bạn có thể bắt Ngoại lệ sử dụng một khối try/catch.  Nếu Ngoại lệ được ném bên trong khối try, đối tượng Ngoại lệ được truyền như một đối số tới khối catch ở đó Ngoại lệ có thể được kiểm soát Nguyễn Đức Hiển – Bài giảng Lập trình Java 7
  8. Bắt Ngoại lệ (Catching Exception)  Trong hầu hết các trường hợp, nếu một phương thức có thể ném ra một Ngoại lệ và bạn muốn gọi nó thì bạn phải xử lý Ngoại lệ của phương thức đó  Tuy nhiên, nếu Ngoại lệ mà phương thức ném ra là một lớp dẫn xuất của lớp RunTimeException thì không cần phải tường minh bắt Ngoại lệ (điều này bao gồm IndexOutOfBoundsException từ ví dụ trước)  Nếu một RunTimeException được ném ra và không được bắt, Java sẽ tự động abort (bỏ dở) chương trình và in chồng vệt tin của ngoại lệ. Nguyễn Đức Hiển – Bài giảng Lập trình Java 8
  9. RunTimeException  Một số lớp dẫn xuất của lớp RunTimeException  ArithmeticException  IndexOutOfBoundsException  NegativeArraySizeException  NullPointerException  ArrayStoreException  ClassCastException  IllegalArgumentException  SecurityException  IllegalMonitorStateException  IllegalStateException  UnsupportedOperationException Nguyễn Đức Hiển – Bài giảng Lập trình Java 9
  10. Xử lý Ngoại lệ  Xử lý Ngoại lệ có thể sử dụng khối try/catch.  Ngoài ra, trong các phương thức ném ra cùng Ngoại lệ có thể chuyển việc bắt Ngoại lệ cho đoạn code gọi phương thức đó. Nguyễn Đức Hiển – Bài giảng Lập trình Java 10
  11. Nhiều khối catch  Đôi khi, một phương thức có thể ném ra nhiều hơn một Ngoại lệ, hay khối try có thể gọi hai phương thức khác nhau mà ném ra hai ngoại lệ khác nhau. Nguyễn Đức Hiển – Bài giảng Lập trình Java 11
  12. Nhiều khối catch  Tất cả các ngoại lệ đều là các lớp dẫn xuất của lớp Exception, do đó có thể khái quát hóa các khối catch để chấp nhận nhiều kiểu Ngoại lệ khác nhau bởi việc sử dụng lớp cơ sở Exception.  Ví dụ: Nguyễn Đức Hiển – Bài giảng Lập trình Java 12
  13. Khối finally  Đôi khi, khi gọi khối try/catch, một Ngoại lệ có thể được ném ra trước khi một số đoạn mã quan trọng cần được chạy ở cuối của khối try  Khối finally có thể được sử dụng chạy mã này  Dù một ngoại lệ được ném ra, khối finally luôn luôn thực hiện Nguyễn Đức Hiển – Bài giảng Lập trình Java 13
  14. Ném lại Ngoại lệ  Bạn có thể ném lại Ngoại lệ sau khi bắt và xử lý nó  Nếu bạn ném lại một Ngoại lệ, bạn phải chỉ rõ rằng phương thức gọi có khả năng ném Ngoại lệ.  Ví dụ: Nguyễn Đức Hiển – Bài giảng Lập trình Java 14
  15. Một số Ngoại lệ  Các lớp Ngoại lệ:  IOException  NumberFormatedException  InterruptedException  FileNotFoundException …  Các thông tin từ các đối tượng Ngoại lệ  getCause()  getMessage()  printStackTrace()  Bạn cũng có thể định nghĩa lớp Ngoại lệ của mình nhưng phải là một lớp dẫn xuất của lớp Exception hay một trong số những lớp dẫn xuất của nó. Nguyễn Đức Hiển – Bài giảng Lập trình Java 15
  16. Tóm lại  Khái niêm Ngoại lệ  Cách xử lý Ngoại lệ  Một số Ngoại lệ Nguyễn Đức Hiển – Bài giảng Lập trình Java 16
  17. Thanks for listenning!!! Nguyễn Đức Hiển – Bài giảng Lập trình Java 17
Đồng bộ tài khoản