Criar exceção personalizada ou usar exceções internas?

Atualmente, estou escrevendo uma classe de cliente que utiliza DNS, soquetes e SSL, entre outras classes que gostam de lançar exceções. Outras pessoas estarão implementando essa classe, então eu queria saber qual é a melhor prática para lançar exceções.

Devo criar minha própria exceção personalizada para que eles saibam que a minha classe está lançando a exceção ou devo permitir que as classes e métodos que chamo (DNS, Sockets etc.) lançem suas próprias exceções? Atualmente, o código está nas centenas de linhas e cresce com muitas chamadas de métodos diferentes. Qual é a melhor prática para lançar exceções nessa situação?

questionAnswers(5)

yourAnswerToTheQuestion