What exception to throw when a property or a method being accessed is temporarily unavailable (as it makes no sense in the current state of the object)?
Signals that a method has been invoked at an illegal or inappropriate time. In other words, the Java environment or Java application is not in an appropriate state for the requested operation.