nonebot2/nonebot/exception.py

149 lines
2.9 KiB
Python
Raw Normal View History

2020-08-20 15:07:05 +08:00
"""
异常
====
下列文档中的异常是所有 NoneBot 运行时可能会抛出的
这些异常并非所有需要用户处理 NoneBot 内部运行时被捕获并进行对应操作
"""
2020-06-30 10:13:58 +08:00
from nonebot.typing import List, Type, Optional
2020-07-25 12:28:30 +08:00
class IgnoredException(Exception):
"""
2020-08-20 15:07:05 +08:00
:说明:
指示 NoneBot 应该忽略该事件可由 PreProcessor 抛出
:参数:
* ``reason``: 忽略事件的原因
2020-07-25 12:28:30 +08:00
"""
def __init__(self, reason):
self.reason = reason
2020-08-20 15:07:05 +08:00
def __repr__(self):
return f"<IgnoredException, reason={self.reason}>"
def __str__(self):
return self.__repr__()
2020-07-25 12:28:30 +08:00
2020-05-05 16:11:05 +08:00
class PausedException(Exception):
2020-08-20 15:07:05 +08:00
"""
:说明:
指示 NoneBot 结束当前 ``Handler`` 并等待下一条消息后继续下一个 ``Handler``
2020-08-20 15:07:05 +08:00
可用于用户输入新信息
:用法:
可以在 ``Handler`` 中通过 ``Matcher.pause()`` 抛出
2020-08-20 15:07:05 +08:00
"""
2020-05-02 20:03:36 +08:00
pass
class RejectedException(Exception):
2020-08-20 15:07:05 +08:00
"""
:说明:
指示 NoneBot 结束当前 ``Handler`` 并等待下一条消息后重新运行当前 ``Handler``
2020-08-20 15:07:05 +08:00
可用于用户重新输入
:用法:
可以在 ``Handler`` 中通过 ``Matcher.reject()`` 抛出
2020-08-20 15:07:05 +08:00
"""
2020-05-02 20:03:36 +08:00
pass
2020-05-05 16:11:05 +08:00
class FinishedException(Exception):
2020-08-20 15:07:05 +08:00
"""
:说明:
指示 NoneBot 结束当前 ``Handler`` 且后续 ``Handler`` 不再被运行
2020-08-20 15:07:05 +08:00
可用于结束用户会话
:用法:
可以在 ``Handler`` 中通过 ``Matcher.finish()`` 抛出
"""
pass
class StopPropagation(Exception):
"""
:说明:
指示 NoneBot 终止事件向下层传播
:用法:
``Matcher.block == True`` 时抛出
2020-08-20 15:07:05 +08:00
"""
2020-05-05 16:11:05 +08:00
pass
2020-08-01 22:03:40 +08:00
class RequestDenied(Exception):
"""
:说明:
Bot 连接请求不合法
:参数:
* ``status_code: int``: HTTP 状态码
* ``reason: str``: 拒绝原因
"""
def __init__(self, status_code: int, reason: str):
self.status_code = status_code
self.reason = reason
def __repr__(self):
return f"<RequestDenied, status_code={self.status_code}, reason={self.reason}>"
def __str__(self):
return self.__repr__()
2020-08-01 22:03:40 +08:00
class ApiNotAvailable(Exception):
2020-08-20 15:07:05 +08:00
"""
:说明:
API 连接不可用时抛出
"""
2020-08-01 22:03:40 +08:00
pass
2020-08-13 15:23:04 +08:00
class NetworkError(Exception):
2020-08-20 15:07:05 +08:00
"""
:说明:
在网络出现问题时抛出: API 请求地址不正确, API 请求无返回或返回状态非正常等
"""
2020-08-13 15:23:04 +08:00
pass
class ActionFailed(Exception):
2020-08-20 15:07:05 +08:00
"""
:说明:
API 请求成功返回数据 API 操作失败
:参数:
* ``retcode: Optional[int]``: 错误代码
2020-08-20 15:07:05 +08:00
"""
2020-08-13 15:23:04 +08:00
def __init__(self, retcode: Optional[int]):
self.retcode = retcode
def __repr__(self):
return f"<ActionFailed, retcode={self.retcode}>"
def __str__(self):
return self.__repr__()