Errors & Halt

XCX_SPEC // AUTHORITATIVE_SOURCE

XCX 3.0 Error Handling (Halt)

XCX uses a structured halt system for managing runtime conditions and errors.

Halt Levels

Level Behavior Use Case
halt.alert Prints a message; execution continues. Logging, non-critical warnings
halt.error Prints to stderr; aborts the current frame. Recoverable logic errors
halt.fatal Prints a message; terminates the VM immediately. Critical failure, security breach

Examples

halt.alert >! "Cache missed, fetching from DB...";

if (divisor == 0) then;
    halt.error >! "Division by zero!";
    return 0; --- Execution returns to caller from the recovery point
end;

if (NOT db.is_healthy()) then;
    halt.fatal >! "Database corrupted. Emergency shutdown.";
end;

Semantic and Runtime Panics

Certain invalid operations result in an automatic panic (equivalent to halt.fatal or halt.error depending on context): - Division by zero (arithmetic) - JSON Parse Failure: Invalid string in json.parse() results in an immediate VM exit. - Path Traversal: Using .. in store methods or absolute paths outside the project root triggers halt.fatal. - Recursion Depth: Exceeding 800 frames triggers halt.error.

UP ↑