title: How to specify exceptions to be thrown by an implementor of an interface?
body: <p>I'm currently developing a solution and have designed it in a way such that it strongly implements the strategy/provider pattern.  As such the solution exposes a number of interfaces and contains default implementations of these interfaces which can be replaced via a DI type methodology.</p>
  
  <p>Where the host application uses a number of these interfaces it is expecting to handle certain exceptions that may occur, for example <code>IDataRetriever</code> interface has a method <code>SomeDataType GetData(int timeout);</code>and the host can handle some custom exceptions such as <code>DataRetrievalTimeoutException</code> or <code>NetworkConnectionException</code>.  </p>
  
  <p>My question is, what is the best way to mark up the interface class such that when a developer implements it they would know that certain exceptions should be thrown and would be handled by the host?</p>
  
  <p>At the moment I have just added the exception xml tags to the methods xml comment - does this suffice?</p>