ANSWER:
B: Component A should try to handle the error. The error should always be handled as close as possible to the source. When it can't be handled it should only be passed up one level. If your component is to exhibit good encapsulation, it should effectively hide the fact that it uses subcomponents from the client application.

Answers in Depth...