HTTP method
Request path or URL
HTTP status code
Response headers
Parsed response body
Optionalparsed: boolean
Whether a string body has already been classified by media type
OptionalcauseReadonlyheadersResponse headers from server.
ReadonlymethodHTTP method used for the request.
ReadonlypathRequest path or URL.
OptionalstackReadonlystatusHTTP status code from server.
StaticstackThe 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.
Expected response body type
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.
StaticcaptureCreates 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();
OptionalconstructorOpt: FunctionStaticisIndicates whether the argument provided is a built-in Error instance or not.
Staticprepare
Error thrown when HTTP request fails with non-2xx status.
HttpErroris 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.
Author
Jeongho Nam - https://github.com/samchon
Evidence
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 downlevelsextends Error, and is a no-op under native classes.Evidence
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.
Evidence
contracts/common.md#prohibited-implementation-shortcuts The prototype assignment is a compatibility measure for a supported downlevel transpilation of
Errorsubclasses and does not replace any foreign method; no consumer-specific behavior is present.Evidence
contracts/common.md#meaningful-documentation The comment states when it is thrown, what it carries, how
messageandtoJSONrelate and where the non-throwing alternatives are; each field has a one-line comment.