You are on page 1of 11

BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC KINH TẾ-KỸ THUẬT CÔNG NGHIỆP


KHOA CÔNG NGHỆ THÔNG TIN
----------

BÀI TẬP LỚN


MÔN: Công nghệ Java
Giảng viên hướng dẫn : ThS. Vũ Văn Đốc
Nhóm SV thực hiện :
- Vũ Thị Thu Hương - Trưởng
nhóm
- Phạm Văn Tài - Thành viên
- Lương Quang Dũng - Thành viên
- Trần Ngọc Huy - Thành viên
- Trần Minh Thiện - Thành viên

Lớp : DHTI13A1HN

Hà Nội, ngày 18 tháng 7 năm 2022


MỤC LỤC
1. Exception là gì?.............................................................................................3
2. Exception Handling là gì?............................................................................3
3. Mô hình xử lý ngoại lệ..................................................................................3
4. Các khối chứa nhiều Catch.........................................................................4
5. Khối Finally...................................................................................................5
a. Tại sao phải sử dụng khối finally?............................................................6
b. Cách sử dụng khối finally..........................................................................6
 Sử dụng khối finally nơi ngoại lệ không xảy ra...................................6
 Sử dụng khối finally nơi ngoại lệ xảy ra nhưng không xử lý..............6
 Sử dụng khối finally nơi ngoại lệ xảy ra và được xử lý.......................7
 Sử dụng khối finally trong trường hợp trong khối lệnh try có lệnh
return..............................................................................................................7
6. Ngoại lệ với lệnh throw.................................................................................8

2
Bài 3: Xử lý ngoại lệ

Exception Handling trong java hay xử lý ngoại lệ trong java là một cơ chế mạnh mẽ để
xử lý các lỗi runtime để có thể duy trì luồng bình thường của ứng dụng.

1. Exception là gì?

Theo từ điển: Exception (ngoại lệ) là một tình trạng bất thường.

Trong java, ngoại lệ là một sự kiện làm gián đoạn luồng bình thường của chương trình.
Nó là một đối tượng được ném ra tại runtime.

2. Exception Handling là gì?

Exception Handling (xử lý ngoại lệ): là một cơ chế xử lý các lỗi runtime như
ClassNotFound, IO, SQL, Remote, vv

 Các kiểu của ngoại lệ

Có hai loại ngoại lệ chính là: checked và unchecked. Còn Sun Microsystem nói rằng
có ba loại ngoại lệ:

 Checked Exception

 Unchecked Exception

 Error

3. Mô hình xử lý ngoại lệ

3
Hình 1.1 : Mô hình xử lý ngoại lệ

4. Các khối chứa nhiều Catch

- Nếu phải thực hiện các tác vụ khác nhau mà ở đó có thể xảy ra các ngoại lệ khác
nhau, hãy sử dụng đa khối lệnh catch.

VD:

- Vào một thời điểm chỉ xảy ra một ngoại lệ và tại một thời điểm chỉ có một khối
Catch được thực thi.

4
- Tất cả các khối catch phải được sắp xếp từ cụ thể nhất đến chung nhất, tức là phải
khai báo khối lệnh catch để xử lý lỗi ArithmeticException trước khi khai báo catch để
xử lý lỗi Exception.

VD:

- Chương trình trên bị lỗi tại compile-time là vì khi có ngoại lệ xảy ra thì các khối lệnh
catch (ArithmeticException e) và catch (ArrayIndexOutOfBoundsException e) không
bao giờ được thực thi, do khối catch (Exception e) đã bắt tất cả các ngoại lệ rồi.

5. Khối Finally

- Khối lệnh finally được sử dụng để thực thi các lệnh quan trọng như đóng kết nối,
đóng các stream,…

- Khối lệnh finally luôn được thực thi cho dù có ngoại lệ xảy ra hay không hoặc gặp
lệnh return
trong khối try.

- Khối lệnh
finally được
khai báo sau khối
lệnh try hoặc sau
khối lệnh catch.

5
Hình 1.2: Khối Finally

a. Tại sao phải sử dụng khối finally?

- Khối finally có thể được sử dụng để chèn lệnh “cleanup” vào chương trình như việc
đóng file, đóng các kết nối, …

b. Cách sử dụng khối finally


 Sử dụng khối finally nơi ngoại lệ không xảy ra

 Sử dụng khối finally nơi ngoại lệ xảy ra nhưng không xử lý

6
 Sử dụng khối finally nơi ngoại lệ xảy ra và được xử lý

 Sử dụng khối finally trong trường hợp trong khối lệnh try có lệnh return.

7
6. Ngoại lệ với lệnh throw

- Từ khoá throw được sử dụng để ném ra một ngoại lệ cụ thể

- Chúng ta có thể ném một trong hai ngoại lệ checked hoặc upchecked bằng từ khoá
throw. Từ khoá throw chủ yếu được sử dụng để ném ngoại lệ tuỳ chỉnh (ngoại lệ do
người dùng tự định nghĩa).

VD: Throw ra ngoại lệ nhưng không xử lý.

VD: Throw ra ngoại lệ nhưng có xử lý.

8
- Từ khoá Throws được sử dụng để khai báo một ngoại lệ. Nó thể hiện thông tin cho
lập trình viên rằng có thể xảy ra một ngoại lệ, vì vậy nó là tốt hơn cho các lập trình
viên để cung cấp các mã xử lý ngoại lệ để duy trì luồng bình thường của chương trình.

- Exception Handling chủ yếu được sử dụng để xử lý ngoại lệ checked. Nếu xảy ra bất
kỳ ngoại lệ unchecked như NullPointerException, đó là lỗi của lập trình viên mà anh ta
không thực hiện kiểm tra trước khi code được sử dụng.

- Chỉ có ngoại lệ checked mới được khai báo, bởi vì:

+ Ngoại lệ unchecked: nằm trong sự kiểm soát của bạn.

+ Error: nằm ngoài sự kiểm soát của bạn.

- Lợi ích của throws

+ Ngoại lệ checked có thể được ném ra ngoài và được xử lý ở một hàm khác.

+ Cung cấp thông tin cho caller của phương thức về các ngoại lê.

VD:

- Nếu bạn đang gọi một phương thức khai báo throws một ngoại lệ, bạn phải bắt hoặc
throws ngoại lệ đó.
9
TH1: Xử lý ngoại lệ với try/catch

TH2: Xử lý ngoại lệ với throws

VD1: Ngoại lệ không xảy ra

VD2: Ngoại lệ xảy ra

10
11

You might also like