Error Handling

Barktler supports error handling and interceptors.

Example

Consider the following code:

import { GoogleSearchAPI } from "some-where-else";

const api: GoogleSearchAPI = GoogleSearchAPI.create();
await api.search("<Something>");

Handle with try-catch

When an error occurs during the request stage, you can catch the error by replacing the above example with the following code:

import { GoogleSearchAPI } from "some-where-else";

const api: GoogleSearchAPI = GoogleSearchAPI.create();
try {
    await api.search("<Something>");
} catch (reason) {
    // Do something with reason
}

Handle with promise chain methods

The search response comes with a promise; you can also do:

import { GoogleSearchAPI } from "some-where-else";

const api: GoogleSearchAPI = GoogleSearchAPI.create();
api.search("<Something>").catch((reason: any) => {
    // Do something with reason
});

Error Hooks

Consider the following code:

import { Barktler } from "@barktler/core";

class GoogleSearchAPI extends Barktler {

    public static create(): GoogleSearchAPI {

        return new GoogleSearchAPI();
    }

    private constructor() {

        super();
        super.errorHook.sideEffect.add((reason: any) => {
            reportReason();
        });
    }

    public async search(keyword: string): Promise<string> {

        const data: string = await this._requestForData({

            url: `https://www.google.com/search?q=${padLeft(keyword, this.getConfig(padLeft))}`,
            method: 'GET',
        });
        return data;
    }
}