Extends Error
EXPECTED application-level condition — the Java-style Exception half of the
error/exception split: "this failure is a known, anticipated business outcome,
not a malfunction".
The framework does NOT pattern-match this class anywhere — it adds no special
handling to gates, checks, or any other channel. It exists so APPLICATION code
can split its own catch blocks the way Java splits Exception from Error:
try {
await doWork();
} catch (error) {
if (GeneralExpectedError.isGeneralExpectedError(error)) {
notifyUser(getErrorMessage(error)); // anticipated — handle and continue
return;
}
throw error; // malfunction — propagate as a failure
}
OrderRejectedError, OrderDeletedError and OrderTransientError are CHANNEL-specific verdicts consumed by the framework's order machinery. GeneralExpectedError is channel-agnostic and framework-invisible: throwing it from a gate or check is treated like any other non-typed throw (the "transient" verdict). Use the triad inside broker adapters; use GeneralExpectedError in your own application layers.
__type__ === Symbol.for("GeneralExpectedError") brand via the static guard —
never by instanceof, so it survives duplicated module instances across
bundles. Subclass it freely for domain-specific expected conditions: the brand
is inherited, so the single guard catches the whole family.message is the user-facing payload — unlike the order triad, where the
message is purely informational, here it typically carries the text shown to
the human who triggered the operation.constructor(message: string);
__type__: symbol
Runtime brand (Symbol.for — survives duplicated module instances)
static isGeneralExpectedError(error: object): boolean;
Nominal type guard by the runtime brand. Use this instead of instanceof:
the check is based on Symbol.for, so it recognizes instances created by a
DIFFERENT copy of this module (duplicated bundles, linked packages), as well
as any subclass carrying the inherited brand.
static fromError(error: object): GeneralExpectedError;
Nominal constructor for a new GeneralExpectedError from any thrown object. Use
this instead of instanceof to recognize instances created by a DIFFERENT copy
of this module (duplicated bundles, linked packages).