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
, чтобы, когда происходит ошибка, выводить соответствующие сообщения в консоль и отправлять ответ пользователю.