Polymorphism   overriding and exception  handling