I am confused about best practice in situation when you need throw multiple exceptions.

Let say that we have exceptions declared as it is shown below.

```
public class DaoException extends Exception

public class ClientNotFoundException extends DaoException

public class NotUniqueResultException extends DaoException

```

Now we have а method, which can throw `ClientNotFoundException` and also `NotUniqueResultException`. What is better to be appled to the `throws` clause?

```
getClientByNumber(Long number) 
    throws ClientNotFoundException, NotUniqueResultException

```

or

```
getClientByNumber(Long number) throws DaoException

```

?

How do you solve this situation in your code? Do you creatе your own exception hierarchy in your applications? 

Is there other possible way how to solve it?