Skip to content

Error Handling

The SDK provides detailed error types for different failure scenarios. All errors extend a common base class, making it easy to catch specific errors or handle them broadly.

Error ClassDescription
UnauthorizedErrorInvalid or missing API key
ObjectNotFoundErrorRequested resource does not exist
FilterErrorInvalid filter parameters
GenericRequestErrorGeneral API request failure
GenericErrorUnexpected API error
SubscriberOnlyErrorResource requires a subscriber account
UrlFormatErrorMalformed request URL
JsonpCallbackMissingErrorJSONP callback parameter missing
OptionsValidationErrorInvalid client configuration
import {
UnauthorizedError,
ObjectNotFoundError,
FilterError,
GenericRequestError,
} from 'comic-vine-sdk';
try {
const issue = await client.issue.retrieve(999999);
} catch (error) {
if (error instanceof UnauthorizedError) {
console.error('Invalid API key');
} else if (error instanceof ObjectNotFoundError) {
console.error('Issue not found');
} else if (error instanceof FilterError) {
console.error('Invalid filter parameters');
} else if (error instanceof GenericRequestError) {
console.error('API request failed:', error.message);
}
}

All SDK errors include a help property with guidance on resolving the issue:

try {
const issue = await client.issue.retrieve(999999);
} catch (error) {
if (error instanceof ObjectNotFoundError) {
console.error(error.message); // Error description
console.error(error.help); // Guidance for resolving the error
}
}

All error classes extend BaseError, which extends HttpClientError from @http-client-toolkit/core. This means you can catch all SDK errors with a single check:

import { HttpClientError } from '@http-client-toolkit/core';
try {
const issue = await client.issue.retrieve(1);
} catch (error) {
if (error instanceof HttpClientError) {
// Any SDK or HTTP client error
console.error('SDK error:', error.message);
}
}