88from logging import getLogger
99from typing import TYPE_CHECKING , Any
1010
11+ from .errorcode import ER_HTTP_GENERAL_ERROR
1112from .secret_detector import SecretDetector
1213from .telemetry import TelemetryData , TelemetryField
1314from .time_util import get_time_millis
@@ -374,6 +375,15 @@ class InterfaceError(Error):
374375 pass
375376
376377
378+ class HttpError (Error ):
379+ def __init__ (self , ** kwargs ) -> None :
380+ Error .__init__ (
381+ self ,
382+ errtype = TelemetryField .HTTP_EXCEPTION ,
383+ ** kwargs ,
384+ )
385+
386+
377387class DatabaseError (Error ):
378388 """Exception for errors related to the database."""
379389
@@ -439,7 +449,8 @@ def __init__(self, **kwargs) -> None:
439449 Error .__init__ (
440450 self ,
441451 msg = kwargs .get ("msg" ) or "HTTP 500: Internal Server Error" ,
442- errno = kwargs .get ("errno" ),
452+ errno = ER_HTTP_GENERAL_ERROR + kwargs .get ("errno" , 0 ),
453+ errtype = TelemetryField .HTTP_EXCEPTION ,
443454 sqlstate = kwargs .get ("sqlstate" ),
444455 sfqid = kwargs .get ("sfqid" ),
445456 )
@@ -452,7 +463,8 @@ def __init__(self, **kwargs) -> None:
452463 Error .__init__ (
453464 self ,
454465 msg = kwargs .get ("msg" ) or "HTTP 503: Service Unavailable" ,
455- errno = kwargs .get ("errno" ),
466+ errno = ER_HTTP_GENERAL_ERROR + kwargs .get ("errno" , 0 ),
467+ errtype = TelemetryField .HTTP_EXCEPTION ,
456468 sqlstate = kwargs .get ("sqlstate" ),
457469 sfqid = kwargs .get ("sfqid" ),
458470 )
@@ -465,7 +477,8 @@ def __init__(self, **kwargs) -> None:
465477 Error .__init__ (
466478 self ,
467479 msg = kwargs .get ("msg" ) or "HTTP 504: Gateway Timeout" ,
468- errno = kwargs .get ("errno" ),
480+ errno = ER_HTTP_GENERAL_ERROR + kwargs .get ("errno" , 0 ),
481+ errtype = TelemetryField .HTTP_EXCEPTION ,
469482 sqlstate = kwargs .get ("sqlstate" ),
470483 sfqid = kwargs .get ("sfqid" ),
471484 )
@@ -478,7 +491,8 @@ def __init__(self, **kwargs) -> None:
478491 Error .__init__ (
479492 self ,
480493 msg = kwargs .get ("msg" ) or "HTTP 403: Forbidden" ,
481- errno = kwargs .get ("errno" ),
494+ errno = ER_HTTP_GENERAL_ERROR + kwargs .get ("errno" , 0 ),
495+ errtype = TelemetryField .HTTP_EXCEPTION ,
482496 sqlstate = kwargs .get ("sqlstate" ),
483497 sfqid = kwargs .get ("sfqid" ),
484498 )
@@ -491,7 +505,8 @@ def __init__(self, **kwargs) -> None:
491505 Error .__init__ (
492506 self ,
493507 msg = kwargs .get ("msg" ) or "HTTP 408: Request Timeout" ,
494- errno = kwargs .get ("errno" ),
508+ errno = ER_HTTP_GENERAL_ERROR + kwargs .get ("errno" , 0 ),
509+ errtype = TelemetryField .HTTP_EXCEPTION ,
495510 sqlstate = kwargs .get ("sqlstate" ),
496511 sfqid = kwargs .get ("sfqid" ),
497512 )
@@ -504,7 +519,8 @@ def __init__(self, **kwargs) -> None:
504519 Error .__init__ (
505520 self ,
506521 msg = kwargs .get ("msg" ) or "HTTP 400: Bad Request" ,
507- errno = kwargs .get ("errno" ),
522+ errno = ER_HTTP_GENERAL_ERROR + kwargs .get ("errno" , 0 ),
523+ errtype = TelemetryField .HTTP_EXCEPTION ,
508524 sqlstate = kwargs .get ("sqlstate" ),
509525 sfqid = kwargs .get ("sfqid" ),
510526 )
@@ -517,7 +533,8 @@ def __init__(self, **kwargs) -> None:
517533 Error .__init__ (
518534 self ,
519535 msg = kwargs .get ("msg" ) or "HTTP 502: Bad Gateway" ,
520- errno = kwargs .get ("errno" ),
536+ errno = ER_HTTP_GENERAL_ERROR + kwargs .get ("errno" , 0 ),
537+ errtype = TelemetryField .HTTP_EXCEPTION ,
521538 sqlstate = kwargs .get ("sqlstate" ),
522539 sfqid = kwargs .get ("sfqid" ),
523540 )
@@ -530,7 +547,8 @@ def __init__(self, **kwargs) -> None:
530547 Error .__init__ (
531548 self ,
532549 msg = kwargs .get ("msg" ) or "HTTP 405: Method not allowed" ,
533- errno = kwargs .get ("errno" ),
550+ errno = ER_HTTP_GENERAL_ERROR + kwargs .get ("errno" , 0 ),
551+ errtype = TelemetryField .HTTP_EXCEPTION ,
534552 sqlstate = kwargs .get ("sqlstate" ),
535553 sfqid = kwargs .get ("sfqid" ),
536554 )
@@ -543,7 +561,8 @@ def __init__(self, **kwargs) -> None:
543561 Error .__init__ (
544562 self ,
545563 msg = kwargs .get ("msg" ) or "HTTP 429: Too Many Requests" ,
546- errno = kwargs .get ("errno" ),
564+ errno = ER_HTTP_GENERAL_ERROR + kwargs .get ("errno" , 0 ),
565+ errtype = TelemetryField .HTTP_EXCEPTION ,
547566 sqlstate = kwargs .get ("sqlstate" ),
548567 sfqid = kwargs .get ("sfqid" ),
549568 )
@@ -568,7 +587,8 @@ def __init__(self, **kwargs) -> None:
568587 Error .__init__ (
569588 self ,
570589 msg = kwargs .get ("msg" ) or f"HTTP { code } " ,
571- errno = kwargs .get ("errno" ),
590+ errno = ER_HTTP_GENERAL_ERROR + kwargs .get ("errno" , 0 ),
591+ errtype = TelemetryField .HTTP_EXCEPTION ,
572592 sqlstate = kwargs .get ("sqlstate" ),
573593 sfqid = kwargs .get ("sfqid" ),
574594 )
0 commit comments