Tìm hiểu về các loại ngoại lệ trong Java và một số sai lầm phổ biến

Cập nhật ngày: 28/03/2024 - Đã có 542 lượt xem bài viết này!
Tìm hiểu về các loại ngoại lệ trong Java và một số sai lầm phổ biến
Như bạn đã thấy, có một số lỗi phổ biến bạn nên cố gắng tránh khi xử lý các ngoại lệ Java. Điều đó giúp bạn tránh các lỗi phổ biến và triển khai các ứng dụng dễ bảo trì và giám sát trong sản xuất.

Tìm hiểu về các loại ngoại lệ trong Java và một số sai lầm phổ biến

Danh mục:

1. Sai lầm 1: Chỉ định java.lang.Exception hoặc java.lang.Throwable

2. Sai lầm 2: Bắt ngoại lệ không đặc hiệu

3. Sai lầm 3: Đăng nhập và ném ngoại lệ

4. Sai lầm 4: Sử dụng ngoại lệ để kiểm soát dòng chảy

Xử lý một ngoại lệ là một trong những phổ biến nhất nhưng không nhất thiết là một trong những nhiệm vụ dễ nhất. Nó vẫn là một trong những chủ đề được thảo luận thường xuyên trong các đội có kinh nghiệm, và có một số thực tiễn tốt nhất và các lỗi phổ biến bạn nên biết.

1. Sai lầm 1: Chỉ định java.lang.Exception hoặc java.lang.Throwable

Như tôi đã giải thích trong một trong những bài viết trước đây của tôi , bạn cần chỉ định hoặc xử lý một ngoại lệ được kiểm tra. Nhưng các trường hợp ngoại lệ được kiểm tra không phải là trường hợp duy nhất bạn có thể chỉ định. Bạn có thể sử dụng bất kỳ lớp con nào của java.lang.Throwable trong mệnh đề ném. Vì vậy, thay vì chỉ định hai ngoại lệ khác nhau được đưa ra bởi đoạn mã sau, bạn chỉ có thể sử dụng java.lang.Exception trong mệnh đề ném.

Nhưng điều đó không có nghĩa là bạn nên làm điều đó. Việc chỉ định một Ngoại lệ hoặc Ném có thể khiến bạn gần như không thể xử lý chúng đúng cách khi gọi phương thức của bạn.

Thông tin duy nhất mà người gọi phương thức của bạn nhận được là có gì đó không ổn. Nhưng bạn không chia sẻ bất kỳ thông tin nào về loại sự kiện đặc biệt có thể xảy ra. Bạn đang che giấu thông tin này đằng sau một điều khoản ném không đặc biệt.

Nó thậm chí còn tồi tệ hơn khi ứng dụng của bạn thay đổi theo thời gian. Mệnh đề ném không đặc hiệu che giấu tất cả các thay đổi đối với các ngoại lệ mà người gọi phải mong đợi và xử lý. Điều đó có thể gây ra một số lỗi không mong muốn mà bạn cần tìm trong trường hợp kiểm tra thay vì lỗi trình biên dịch.

2. Sai lầm 2: Bắt ngoại lệ không đặc hiệu

Mức độ nghiêm trọng của lỗi này phụ thuộc vào loại thành phần phần mềm bạn đang triển khai và nơi bạn bắt ngoại lệ. Có thể ổn khi bắt java.lang.Exception trong phương thức chính của ứng dụng Java SE của bạn. Nhưng bạn nên nắm bắt các ngoại lệ cụ thể, nếu bạn đang triển khai thư viện hoặc nếu bạn đang làm việc trên các lớp sâu hơn của ứng dụng.

Điều đó cung cấp một số lợi ích. Nó cho phép bạn xử lý mỗi lớp ngoại lệ khác nhau và nó ngăn bạn bắt ngoại lệ mà bạn không mong đợi.

Nhưng hãy nhớ rằng khối bắt đầu tiên xử lý lớp ngoại lệ hoặc một trong các siêu lớp của nó sẽ bắt được nó. Vì vậy, hãy chắc chắn để bắt lớp cụ thể nhất đầu tiên. Mặt khác, IDE của bạn sẽ hiển thị một lỗi hoặc thông báo cảnh báo cho bạn biết về một khối mã không thể truy cập .

3. Sai lầm 3: Đăng nhập và ném ngoại lệ

Đó là một trong những lỗi phổ biến nhất khi xử lý các ngoại lệ Java. Có vẻ hợp lý khi ghi nhật ký ngoại lệ nơi nó được ném và sau đó gửi lại cho người gọi có thể thực hiện xử lý trường hợp sử dụng cụ thể. Nhưng bạn không nên làm điều đó vì ba lý do sau:

  • Bạn không có đủ thông tin về trường hợp sử dụng mà người gọi phương thức của bạn muốn thực hiện. Ngoại lệ có thể là một phần của hành vi dự kiến và được xử lý bởi khách hàng. Trong trường hợp này, có thể không cần phải đăng nhập nó. Điều đó sẽ chỉ thêm một thông báo lỗi sai vào tệp nhật ký của bạn cần được lọc bởi nhóm hoạt động của bạn.
  • Thông điệp tường trình không cung cấp bất kỳ thông tin nào chưa phải là một phần của ngoại lệ. Thông điệp và dấu vết ngăn xếp của nó sẽ cung cấp tất cả thông tin liên quan về sự kiện đặc biệt. Thông báo mô tả nó và theo dõi ngăn xếp chứa thông tin chi tiết về lớp, phương thức và dòng mà nó xảy ra.
  • Bạn có thể đăng nhập cùng một ngoại lệ nhiều lần khi bạn đăng nhập vào mỗi khối bắt được nó. Điều đó làm rối loạn các số liệu thống kê trong công cụ giám sát của bạn và làm cho tệp nhật ký khó đọc hơn cho các hoạt động và nhóm phát triển của bạn.

4. Sai lầm 4: Sử dụng ngoại lệ để kiểm soát dòng chảy

Sử dụng các ngoại lệ để kiểm soát luồng ứng dụng của bạn được coi là một mô hình chống vì hai lý do chính:

  • Về cơ bản, chúng hoạt động giống như một câu lệnh Go To vì chúng hủy bỏ việc thực thi khối mã và nhảy đến khối bắt đầu tiên xử lý ngoại lệ. Điều đó làm cho mã rất khó đọc.
  • Chúng không hiệu quả như các cấu trúc điều khiển chung của Java. Như tên của chúng chỉ ra, bạn chỉ nên sử dụng chúng cho các sự kiện đặc biệt và JVM không tối ưu hóa chúng theo cùng một cách với mã khác.

Vì vậy, tốt hơn nên sử dụng các điều kiện thích hợp để phá vỡ các vòng lặp của bạn hoặc câu lệnh if-other- để quyết định khối mã nào sẽ được thực thi.

Bạn đang muốn tìm kiếm 1 công việc với mức thu nhập cao.
✅ Hoặc là bạn đang muốn chuyển đổi công việc mà chưa biết theo học ngành nghề gì cho tốt.
✅ Giới thiệu với bạn Chương trình đào tạo nhân sự dài hạn trong 12 tháng với những điều đặc biệt mà chỉ có tại IMIC và đây cũng chính là sự lựa chọn phù hợp nhất dành cho bạn:
👉 Thứ nhất: Học viên được đào tạo bài bản kỹ năng, kiến thức chuyên môn lý thuyết, thực hành, thực chiến nhiều dự án và chia sẻ những kinh nghiệm thực tế từ Chuyên gia có nhiều năm kinh nghiệm dự án cũng như tâm huyết truyền nghề.
👉 Thứ hai: Được ký hợp đồng cam kết chất lượng đào tạo cũng như mức lương sau tốt nghiệp và đi làm tại các đối tác tuyển dụng của IMIC. Trả lại học phí nếu không đúng những gì đã ký kết.
👉 Thứ ba: Cam kết hỗ trợ giới thiệu công việc sang đối tác tuyển dụng trong vòng 10 năm liên tục.
👉 Thứ tư: Được hỗ trợ tài chính với mức lãi suất 0 đồng qua ngân hàng VIB Bank.
👉  Có 4 Chương trình đào tạo nhân sự dài hạn dành cho bạn lựa chọn theo học. Gồm có:
1)  Data Scientist full-stack
2)  Embedded System & IoT development full-stack
3)  Game development full-stack
4)  Web development full-stack 
✅ Cảm ơn bạn đã dành thời gian lắng nghe những chia sẻ của mình. Và tuyệt vời hơn nữa nếu IMIC được góp phần vào sự thành công của bạn. 
✅ Hãy liên hệ ngay với Phòng tư vấn tuyển sinh để được hỗ trợ về thủ tục nhập học.
✅ Chúc bạn luôn có nhiều sức khỏe và thành công!

Tham khảo các khóa đào tạo nhân sự qua danh mục