🏗️ change exception structure

This commit is contained in:
yanyongyu
2020-12-03 15:07:03 +08:00
parent 8f89e0f26e
commit 9658e446e5
6 changed files with 59 additions and 45 deletions

View File

@ -10,6 +10,7 @@ CQHTTP (OneBot) v11 协议适配
https://github.com/howmanybots/onebot/blob/master/README.md
"""
from .message import Message, MessageSegment
from .bot import Bot
from .utils import log
from .event import Event
from .message import Message, MessageSegment
from .bot import Bot, _check_at_me, _check_nickname, _check_reply

View File

@ -8,15 +8,16 @@ import httpx
from nonebot.log import logger
from nonebot.config import Config
from nonebot.message import handle_event
from nonebot.typing import overrides, Driver, WebSocket, NoReturn
from nonebot.typing import Any, Dict, Union, Optional
from nonebot.adapters import BaseBot
from nonebot.exception import NetworkError, ActionFailed, RequestDenied, ApiNotAvailable
from nonebot.message import handle_event
from nonebot.typing import Any, Dict, Union, Optional
from nonebot.typing import overrides, Driver, WebSocket, NoReturn
from nonebot.exception import NetworkError, RequestDenied, ApiNotAvailable
from .message import Message, MessageSegment
from .utils import log, get_auth_bearer
from .event import Event
from .exception import ApiError
from .utils import log, get_auth_bearer
from .message import Message, MessageSegment
async def _check_reply(bot: "Bot", event: "Event"):
@ -159,11 +160,11 @@ def _handle_api_result(
:异常:
- ``ActionFailed``: API 调用失败
- ``ApiError``: API 调用失败
"""
if isinstance(result, dict):
if result.get("status") == "failed":
raise ActionFailed(retcode=result.get("retcode"))
raise ApiError(retcode=result.get("retcode"))
return result.get("data")
@ -317,7 +318,7 @@ class Bot(BaseBot):
:异常:
- ``NetworkError``: 网络错误
- ``ActionFailed``: API 调用失败
- ``ApiError``: API 调用失败
"""
if "self_id" in data:
self_id = data.pop("self_id")
@ -368,8 +369,8 @@ class Bot(BaseBot):
@overrides(BaseBot)
async def send(self,
event: "Event",
message: Union[str, "Message", "MessageSegment"],
event: Event,
message: Union[str, Message, MessageSegment],
at_sender: bool = False,
**kwargs) -> Union[Any, NoReturn]:
"""
@ -392,7 +393,7 @@ class Bot(BaseBot):
- ``ValueError``: 缺少 ``user_id``, ``group_id``
- ``NetworkError``: 网络错误
- ``ActionFailed``: API 调用失败
- ``ApiError``: API 调用失败
"""
msg = message if isinstance(message, Message) else Message(message)

View File

@ -0,0 +1,29 @@
from nonebot.exception import AdapterException, ActionFailed
class CQHTTPAdapterException(AdapterException):
def __init__(self):
super().__init__("cqhttp")
class ApiError(CQHTTPAdapterException, ActionFailed):
"""
:说明:
API 请求返回错误信息。
:参数:
* ``retcode: Optional[int]``: 错误码
"""
def __init__(self, retcode: Optional[int] = None):
super().__init__()
self.retcode = retcode
def __repr__(self):
return f"<ActionFailed retcode={self.retcode}>"
def __str__(self):
return self.__repr__()