Bot 异常
TIP
在查看此部分内容前,你应当已经阅读文档中的“进阶”部分
在 MeloBot 中,要使用 Bot 内定义的一些异常,可以导入:
from utils.globalPattern import *
这些异常都会以 Bot...
开头。当然你也可以继承 BotException
基类,进行新异常的定义。
需要注意的是,这些异常都会携带两个属性,它们拥有不同的含义(为了方便不同情境下的操作):
err
:人性化异常提示,包含类名origin_err
:不包含类名的异常提示
另外,在这些异常中,BotCmdWrongParams
异常在命令模板中有特别的用法。你可以在命令模板中抛出这个异常,表示当前命令的参数存在问题,此时这个抛出的异常会被命令接口捕获,命令接口会根据你设置的提示语,自动生成一条回复消息,作为命令执行失败的反馈。例如下面的例子:
# 命令模板中:
raise BotCmdWrongParams("天气查询命令参数中的城市不存在")
# 最后将自动回复消息:
天气查询命令参数中的城市不存在
需要注意的是,这里手动抛出 BotCmdWrongParams
异常可以实现自定义错误反馈的效果。但是如果是命令模板执行时,因为参数不足或者参数类型错误而自动抛出 TypeError 或 ValueError,此时的反馈是不可自定义的。命令接口会自动捕获这两种异常,并且只回复:“参数有误哦~”