errors#
The exceptions the engine throws. All of them are unchecked: they extend RuntimeException, and no method declares throws. Every engine failure is a PlenException, an abstract base with two subclasses:
InputException- the data or options passed to a call are invalid. Thekindfield is anInputErrorKind(PARSEorVALIDATION), andpathnames the input field the error refers to, such astasks[3].constraint_date.ProjectException- the call doesn't fit the current state of aProject. Thecodefield is aProjectError:NO_BASELINE,STALE_BASELINEorNEEDS_RESYNC.
MatchException is the exception of SkillLayer.slots and SkillLayer.validatePool. It isn't a PlenException, so catch (PlenException e) doesn't catch it. Its two nested subclasses, MatchException.Invalid and MatchException.Project, convert to the matching InputException or ProjectException with toPlenException().
A null argument that isn't documented as nullable throws NullPointerException. The JSON API's JsonProjectException is in the json folder.
Cycles, conflicts, a planner that didn't converge and operations that Project#apply rejected aren't exceptions. They come back as data in the result. Every type here is in the org.dhtmlx.plen package. For how to handle each failure and recover a project, see Error handling.
- InputExceptionThrown when the data or options passed to a call are invalid, with the error kind and the path of the bad field
- MatchExceptionThe exception SkillLayer.slots and validatePool throw for an invalid pool or requirement, or a project without a baseline
- ProjectExceptionThrown when a call doesn't fit the current state of a Project, with a ProjectError code
- PlenExceptionAbstract base class of every exception the engine throws