This question is based on [Clean Code](https://rads.stackoverflow.com/amzn/click/com/0132350882), chapter *"Functions"*, section *"The Error.java dependency magnet"*.

```
public enum Error {
      OK,
      INVALID,
      NO_SUCH
}

```

The author claims that all classes that import and use this `enum` must be recompiled in case of a change. This is opposed to adding new `Exception` derivatives. In the latter case there is supposedly no recompilation necessary.

But isn't it the case that if you use the package that has the derived exceptions as soon as the package is changed by adding a new derived `Exception`, if your code depends on the package it will need to be recompiled? Or will you code only need to be recompiled if it actually uses one of the new derived Exceptions?