errors#
The exceptions the engine throws. Every engine failure is a PlenException, an abstract base with two sealed subclasses:
InputException- the data or options passed to a call are invalid.Kindis anInputErrorKind(ParseorValidation), andPathnames the input field the error refers to, such astasks[2].duration.ProjectException- the call doesn't fit the current state of aProject.Codeis aProjectError:NoBaseline,StaleBaselineorNeedsResync.
catch (PlenException) covers both, including the exceptions from SkillLayer.Slots in the Plen.Assign package. A null argument that isn't declared nullable throws ArgumentNullException instead.
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 Plen namespace. 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
- 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