cause
The failure this exception wraps, from either construction path: the cause parameter of the secondary constructor, or a later initCause(...) on platforms whose Throwable offers it. A class with a primary constructor cannot delegate to super(cause), so the constructor form is carried in a field and the standard chain is read as the fallback - without it, initCause would compile, throw nothing and be silently discarded.
The constructor form wins when both are used: it is the explicit one.