Перейти к основному содержимому

onError

Метод onError

Метод onError вызывается при возникновении ошибки при выполнении команды. Этот метод может быть переопределен в дочерних классах для обработки ошибок по-разному.

Параметры

  • message: UserMessageContext: объект, который содержит информацию о входящем сообщении.
  • error: any: объект ошибки, которая была выброшена в ходе выполнения команды.

Возвращаемое значение

Этот метод должен вернуть некоторый результат. По умолчанию он просто выкидывает ошибку, что может привести к аварийному завершению работы бота. Однако, если этот метод будет переопределен в дочернем классе, то можно реализовать какую-то логику обработки ошибки и вернуть управление обратно в основной код приложения.

Пример использования

import { Command } from "./command";
import { UserMessageContext } from "../contexts";

export class MyCommand extends Command {
public async execute(message: UserMessageContext): Promise<void> {
// some code that may throw an error
}

public onError(message: UserMessageContext, error: any): void {
console.log(`Caught an error while executing command ${this.params.name}: ${error.message}`);
message.reply("Sorry, something went wrong while executing your command.");
}
}

В этом примере мы создали новый класс MyCommand, который является наследником класса Command. Мы переопределили метод execute, чтобы выполнить какую-то логику, которая может выбросить ошибку. Также мы переопределили метод onError, чтобы, когда происходит ошибка, выводить соответствующие сообщения в консоль и отправлять ответ пользователю.