In continuation of the previous exercise, we now wish to introduce the following somewhat unconventional handling of stack exceptions:
With these ideas, most stack programs will be able to terminate normally (run to the end).
I suggest that you introduce yet another specialization of the stack class, which specializes Push, Pop, and Top. The specialized stack operations should handle relevant stack-related exceptions, and delegate the real work to its superclass. Thus, in the specialized stack class, each stack operation, such as Push, you should embed base.push(el) in a try-catch control structure, which repairs the stack - as suggested above - in the catch clause.