# Error handling

To properly catch and handle errors, the `sdk` provides a list of errors that can be used at any place in your app integration. All these errors are available under `sdk.errors`.

## Usage

The following code sample is an example of how to implement the error handling logic:

```javascript
const res = await sdk.request({url: "https://api.com"})
if (res.status !== 200) {
    throw new sdk.errors.ResponseError("Failed to fetch API")
}
```

## Error types

The following error types are available to use without any custom configurations:

- `ValidationError`
- `ExpiredAuthError`
- `RefreshAuthError`
- `ResponseError`


## Custom errors

If the available errors do not meet your needs, you can also create a custom error to suit your needs.

```javascript
class MyCustomError extends Error {
    constructor(message) {
        super(message);
        this.type = "my_custom_error";
    }
}

const res = await sdk.request({url: "https://api.com"})
if (res.status !== 200) {
    throw new MyCustomError(res.data)
}
```