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
Output:
Compile Time Error
Output:
child
Nếu phương thức của lớp cha khai báo ném ra exception
Ví dụ về TH phương thức ghi đè của lớp cha khai báo ném ra ngoại lệ cha.
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ự.
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.
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.
Output:
child