| @@ -122,6 +122,14 @@ class NotFound(HTTPException): | ||||
|     """ | ||||
|     pass | ||||
|  | ||||
| class DiscordServerError(HTTPException): | ||||
|     """Exception that's thrown for when a 500 range status code occurs. | ||||
|  | ||||
|     Subclass of :exc:`HTTPException`. | ||||
|  | ||||
|     .. versionadded:: 1.5 | ||||
|     """ | ||||
|     pass | ||||
|  | ||||
| class InvalidData(ClientException): | ||||
|     """Exception that's raised when the library encounters unknown | ||||
|   | ||||
| @@ -33,7 +33,7 @@ import weakref | ||||
|  | ||||
| import aiohttp | ||||
|  | ||||
| from .errors import HTTPException, Forbidden, NotFound, LoginFailure, GatewayNotFound | ||||
| from .errors import HTTPException, Forbidden, NotFound, LoginFailure, DiscordServerError, GatewayNotFound | ||||
| from .gateway import DiscordClientWebSocketResponse | ||||
| from . import __version__, utils | ||||
|  | ||||
| @@ -252,6 +252,9 @@ class HTTPClient: | ||||
|                     raise | ||||
|  | ||||
|             # We've run out of retries, raise. | ||||
|             if r.status >= 500: | ||||
|                 raise DiscordServerError(r, data) | ||||
|  | ||||
|             raise HTTPException(r, data) | ||||
|  | ||||
|     async def get_from_cdn(self, url): | ||||
|   | ||||
| @@ -34,7 +34,7 @@ from urllib.parse import quote as _uriquote | ||||
| import aiohttp | ||||
|  | ||||
| from . import utils | ||||
| from .errors import InvalidArgument, HTTPException, Forbidden, NotFound | ||||
| from .errors import InvalidArgument, HTTPException, Forbidden, NotFound, DiscordServerError | ||||
| from .enums import try_enum, WebhookType | ||||
| from .user import BaseUser, User | ||||
| from .asset import Asset | ||||
| @@ -241,7 +241,10 @@ class AsyncWebhookAdapter(WebhookAdapter): | ||||
|                     raise NotFound(r, response) | ||||
|                 else: | ||||
|                     raise HTTPException(r, response) | ||||
|  | ||||
|         # no more retries | ||||
|         if r.status >= 500: | ||||
|             raise DiscordServerError(r, response) | ||||
|         raise HTTPException(r, response) | ||||
|  | ||||
|     async def handle_execution_response(self, response, *, wait): | ||||
| @@ -342,7 +345,10 @@ class RequestsWebhookAdapter(WebhookAdapter): | ||||
|                 raise NotFound(r, response) | ||||
|             else: | ||||
|                 raise HTTPException(r, response) | ||||
|  | ||||
|         # no more retries | ||||
|         if r.status >= 500: | ||||
|             raise DiscordServerError(r, response) | ||||
|         raise HTTPException(r, response) | ||||
|  | ||||
|     def handle_execution_response(self, response, *, wait): | ||||
|   | ||||
| @@ -2902,6 +2902,8 @@ The following exceptions are thrown by the library. | ||||
|  | ||||
| .. autoexception:: NotFound | ||||
|  | ||||
| .. autoexception:: DiscordServerError | ||||
|  | ||||
| .. autoexception:: InvalidData | ||||
|  | ||||
| .. autoexception:: InvalidArgument | ||||
| @@ -2931,3 +2933,4 @@ Exception Hierarchy | ||||
|             - :exc:`HTTPException` | ||||
|                 - :exc:`Forbidden` | ||||
|                 - :exc:`NotFound` | ||||
|                 - :exc:`DiscordServerError` | ||||
|   | ||||
		Reference in New Issue
	
	Block a user