The difference is where the error is. With the Category filter, FilterFactoryNotCreatedException is thrown if the user provides a bad name (eg via typo) for the filter and FilterNotCreatedException is thrown if the user provides a bad name for the category value. If this differentiation is deemed not worthwhile, the two exceptions can be collapsed.