11/08/2018, 19:44

Exception handling với overriding phương thức trong java

Sự khác nhau giữa final, finally và finalize 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 ...

Sự khác nhau giữa final, finally và finalize

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
Sự khác nhau giữa final, finally và finalize
0