Tải bản đầy đủ (.ppt) (17 trang)

Ch4.Xu ly Ngoai le pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (272.18 KB, 17 trang )

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 :

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ại lệ
(Processing Exception)
Nguyễn Đức Hiển – Bài giảng Lập trình Java
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
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
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
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
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
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
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ạ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
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
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
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
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
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
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
17
Thanks for listenning!!!

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×