Class RenderDepthExceededException

java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
com.ultikits.ultitools.abstracts.gui.declarative.core.RenderDepthExceededException
All Implemented Interfaces:
Serializable

@Internal public class RenderDepthExceededException extends RuntimeException
Raised by RenderDepthGuard when one of the declarative render frame's traversal recursions reaches an Element-tree depth beyond RenderDepthGuard.MAX_DEPTH.

A named, attributable failure in place of the StackOverflowError the guard exists to prevent (T-05-62 / #371): a module-authored widget tree deep enough overflows the JVM stack mid-frame, and StackOverflowError is an Error -- nothing on the render path catches it, so it would otherwise escape the scheduled frame and can leave the Inventory half-written. This exception, by contrast, is a plain RuntimeException raised by ordinary application code before any stack exhaustion occurs, so it propagates and can be handled like any other failure in the frame. "Attributable" describes what a reader of the server console or the UltiPanel error dashboard sees (the guard name and depth reached in the message, and one report per guard site rather than one per frame -- see GuiScheduler.executeFrame's routing into ErrorReportCollector, WR-01); it does not claim the exception is meant to be caught and recovered from by module authors.

WR-03: @ApiStatus.Internal -- purely internal render-engine machinery; no module-author use case for catching this exception is intended, and this release adds no new public surface.

Since:
6.3.0
See Also:
  • Field Details

  • Constructor Details

    • RenderDepthExceededException

      public RenderDepthExceededException(String guardName, int depth, int maxDepth)
      Constructs the exception, naming the guard that tripped, the depth reached, and the configured limit.
      Parameters:
      guardName - identifies which of the four render-frame recursions raised this -- surfaced in the message so the failure is attributable, not anonymous
      depth - the Element-tree depth that was reached
      maxDepth - the configured limit that was exceeded