Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
384,5 KB
Nội dung
Nguyễn Đức Hiển – Bài giảng Lập trình Java 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 2 Chương 4 Xử lýNgoạilệ (Processing Exception) Nguyễn Đức Hiển – Bài giảng Lập trình Java 3 Nội dung Ngoạilệ là gì ? Xử lýNgoạilệ Nguyễn Đức Hiển – Bài giảng Lập trình Java 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ạilệ (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 5 Ngoạilệ là gì? Một Ngoạilệ (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ạilệ 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 6 Ném Ngoạilệ Thực chất, việc ném ra các Ngoạilệ 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 7 Bắt Ngoạilệ (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ạilệ sử dụng một khối try/catch. Nếu Ngoạilệ được ném bên trong khối try, đối tượng Ngoạilệ được truyền như một đối số tới khối catch ở đó Ngoạilệ có thể được kiểm soát Nguyễn Đức Hiển – Bài giảng Lập trình Java 8 Bắt Ngoạilệ (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ạilệ và bạn muốn gọi nó thì bạn phải xử lýNgoạilệ của phương thức đó Tuy nhiên, nếu Ngoạilệ 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ạilệ (đ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 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 10 Xử lýNgoạilệ Xử lýNgoạilệ 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ạilệ có thể chuyển việc bắt Ngoạilệ cho đoạn code gọi phương thức đó. [...]... dụng lớp cơ sở Exception Ví dụ: Nguyễn Đức Hiển – Bài giảng Lập trình Java Khối finally Đôi khi, khi gọi khối try/catch, một Ngoạilệ 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ạilệ đượ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 Ném lại Ngoạilệ Bạn... rằng phương thức gọi có khả năng ném Ngoạilệ Ví dụ: Nguyễn Đức Hiển – Bài giảng Lập trình Java Một số Ngoạilệ Các lớp Ngoại lệ: IOException NumberFormatedException InterruptedException FileNotFoundException … Các thông tin từ các đối tượng Ngoạilệ getCause() getMessage() printStackTrace() Bạn cũng có thể định nghĩa lớp Ngoạilệ của mình nhưng phải là một lớp dẫn xuất của 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. lớp dẫn xu t của lớp RunTimeException ArithmeticException IndexOutOfBoundsException NegativeArraySizeException NullPointerException ArrayStoreException ClassCastException IllegalArgumentException SecurityException IllegalMonitorStateException IllegalStateException UnsupportedOperationException Nguyễn. RunTimeException ArithmeticException IndexOutOfBoundsException NegativeArraySizeException NullPointerException ArrayStoreException ClassCastException IllegalArgumentException SecurityException IllegalMonitorStateException IllegalStateException UnsupportedOperationException Nguyễn Đức Hiển – Bài giảng