Welcome to JavaRanch
James Rose.
Please don't simply give that sort of answer. If you get the sort of question the poster could have answered, you simply excuse them the opportunity to do some work and find out for themselves. He could have written "javac B" and seen the errors (or lack of errors) in less time than it takes to read the posting.
The real explanation is that a subclass (overriding) method is a refinement of the superclass (Overridden) method. The rules about refinement are that a refinement (subclass method) is always feasible under whichever circumstances the refinee (superclass method) is feasible. If a method throws an exception, it means it is not feasible. The subclass method must not throw an exception when the superclass method would not have thrown an exception, but the
Java compiler can only verify that for checked exceptions.
If the superclass method throws an exception, then it is not feasible, but there is nothing to stop the subclass method being feasible (ie running without exception) under the same circumstances.
So . . .
A subclass method mustn't add exceptions (but the compiler cannot check unchecked exceptions).
A subclass method may subtract exceptions.
And if you can understand that, you are doing well