Hi.......
why client cannot do anything to throw(or recover from exception) a RuntimeException or create a subclass of RuntimeException.?Suppose a programmer may be tempted to write code(or class) that throws only unchecked exceptions or to make all their exception subclasses inherit from RuntimeException,so what happens if some other programmers using this class, and it is so good to document a method's API, including the exception it can thrown, why not specify runtime exception too?
Most of the assumptions you've made here are wrong:
(1) You can extend RuntimeException
(3) You can throw RuntimeExceptions
(3) You can catch RuntimeExceptions
(4) You can declare them in your method signature
But catching them and declaring them is optional. I would agree that if an API is designed so that it deliberately throws RuntimeExceptions only, then they should be documented.