Bài 81: Exception handling với overriding phương thức trong java

Ngày đăng: 1/2/2023 3:08:50 PM

Có một vài quy tắc về xử lý ngoại lệ (exception handling) với overriding phương thức trong java như sau:

  • Nếu phương thức của lớp cha không khai báo ném ra exception
    • Nếu phương thức của lớp cha không khai báo ném ra exception, phương thức được ghi đè của lớp cha không thể khai báo ném ra ngoại lệ checked, nhưng ngoại lệ unchecked thì có thể.
  • Nếu phương thức của lớp cha khai báo ném ra exception
    • Nếu phương thức của lớp cha khai báo ném ra exception, phương thức được ghi đè của lớp cha có thể khai báo ném ra ngoại lệ tương tự, ngoại lệ con, nhưng không thể khai báo ném ra ngoại lệ cha.

Nếu phương thức của lớp cha không khai báo ném ra exception

1) Quy tắc: Nếu phương thức của lớp cha không khai báo ném ra exception, phương thức được ghi đè của lớp cha không thể khai báo ném ra ngoại lệ checked.

xu-ly-ngoai-le-voi-overriding-phuong-thuc-1

Output:

 Compile Time Error
 

2) Quy tắc: Nếu phương thức của lớp cha không khai báo ném ra exception, phương thức được ghi đè của lớp cha không thể khai báo ném ra ngoại lệ checked, nhưng ngoại lệ unchecked thì có thể.

xu-ly-ngoai-le-voi-overriding-phuong-thuc-2

Output:

 child
 

Nếu phương thức của lớp cha khai báo ném ra exception

Quy tắc: Nếu phương thức của lớp cha khai báo ném ra exception, phương thức được ghi đè của lớp cha có thể khai báo ném ra ngoại lệ tương tự, ngoại lệ con, nhưng không thể khai báo ném ra ngoại lệ cha.

Ví dụ về TH phương thức ghi đè của lớp cha khai báo ném ra ngoại lệ cha.

xu-ly-ngoai-le-voi-overriding-phuong-thuc-3

Output:

 Compile Time Error
 

Ví dụ về TH phương thức ghi đè của lớp cha khai báo ném ra ngoại lệ tương tự.

xu-ly-ngoai-le-voi-overriding-phuong-thuc-4

Output:

 child
 

Ví dụ về TH phương thức ghi đè của lớp cha khai báo ném ra ngoại lệ con.

xu-ly-ngoai-le-voi-overriding-phuong-thuc-5

Output:

 child
 

Ví dụ về TH phương thức ghi đè của lớp cha không khai báo ném ra ngoại lệ nào.

xu-ly-ngoai-le-voi-overriding-phuong-thuc-6

Output:

 child

Nguồn tin: viettuts