Documentation
    Preparing search index...

    Class HttpError

    Error thrown when HTTP request fails with non-2xx status.

    HttpError is thrown by HttpLlm.execute and HttpMigration.execute when the server returns a non-2xx status code. Contains the full HTTP context: method, path, status, headers, and response body.

    The human-readable error text is available via message, while toJSON preserves the parsed response body. For non-throwing behavior, use HttpLlm.propagate or HttpMigration.propagate instead.

    Jeongho Nam - https://github.com/samchon

    contracts/common.md#principled-implementation The error extends the platform Error so it is catchable and carries a stack, and it adds the request method, path, status and response headers as readonly fields. The message is the response body as text, and the parsed body is kept separately for toJSON; a string body that the fetcher has not classified is parsed lazily, so a plain-text response is not reinterpreted as JSON by construction. The prototype assignment in the constructor repairs inheritance only if a toolchain downlevels extends Error, and is a no-op under native classes.

    contracts/common.md#clear-and-simple-design One class with four public fields, one private slot and one method; stringification of an arbitrary body is a module-level helper because only the constructor needs it.

    contracts/common.md#prohibited-implementation-shortcuts The prototype assignment is a compatibility measure for a supported downlevel transpilation of Error subclasses and does not replace any foreign method; no consumer-specific behavior is present.

    contracts/common.md#meaningful-documentation The comment states when it is thrown, what it carries, how message and toJSON relate and where the non-throwing alternatives are; each field has a one-line comment.

    Hierarchy

    • Error
      • HttpError
    Index
    • Parameters

      • method: "HEAD" | "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "QUERY"

        HTTP method

      • path: string

        Request path or URL

      • status: number

        HTTP status code

      • headers: Record<string, string | string[]>

        Response headers

      • body: unknown

        Parsed response body

      • Optionalparsed: boolean

        Whether a string body has already been classified by media type

      Returns HttpError

    cause?: unknown
    headers: Record<string, string | string[]>

    Response headers from server.

    message: string
    method: "HEAD" | "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "QUERY"

    HTTP method used for the request.

    name: string
    path: string

    Request path or URL.

    stack?: string
    status: number

    HTTP status code from server.

    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed.

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    • Return the structured error record.

      JSON serialization requires the caller's response body type to be JSON-compatible; the generic type does not establish that property.

      Type Parameters

      • T

        Expected response body type

      Returns HttpError.IProps<T>

      Structured HTTP error information

      contracts/common.md#principled-implementation The method returns the structured fields with the body as message; when the body was not classified it tries JSON.parse on the message and falls back to the message text, then caches the result, so the JSON form of a JSON error body is an object and that of a text body remains the text.

      contracts/common.md#clear-and-simple-design One method that fills a private cache and returns a fresh record each time.

      contracts/common.md#prohibited-implementation-shortcuts It does not alter the message or fields; the cache only stores the derived body.

      contracts/common.md#meaningful-documentation The doc explains the return and the type parameter, and says that it preserves the parsed body.

    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack`

      The first line of the trace will be prefixed with ${myObject.name}: ${myObject.message}.

      The optional constructorOpt argument accepts a function. If given, all frames above constructorOpt, including constructorOpt, will be omitted from the generated stack trace.

      The constructorOpt argument is useful for hiding implementation details of error generation from the user. For instance:

      function a() {
      b();
      }

      function b() {
      c();
      }

      function c() {
      // Create an error without stack trace to avoid calculating the stack trace twice.
      const { stackTraceLimit } = Error;
      Error.stackTraceLimit = 0;
      const error = new Error();
      Error.stackTraceLimit = stackTraceLimit;

      // Capture the stack trace above function b
      Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
      throw error;
      }

      a();

      Parameters

      • targetObject: object
      • OptionalconstructorOpt: Function

      Returns void

    • Indicates whether the argument provided is a built-in Error instance or not.

      Parameters

      • error: unknown

      Returns error is Error

    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any