title: Exception handling in API questions
body: <p>I am writing an API in C#. Some exceptions in some methods I propagate, because I want the user to see be aware of the exception. However, some exceptions I don't. To let the client aware, do I need to propagate from the method and in every callee of that method? E.g.</p>
  
  <p>a > calls b > calls c</p>
  
  <p>if I rethrow from c, do I need to do the same from b and from a?</p>
  
  <p>Also, an exception caught in a method's catch block (say, b, called from a) will also be caught in a's catch block. But what would be the difference if a is the entry point to an API and b has throw ex; in the catch block?</p>
  
  <p>Thanks</p>