1717LOG = logging .getLogger (__name__ )
1818
1919
20+ class ClientError (Exception ):
21+ pass
22+
23+
24+ class ServerError (Exception ):
25+ pass
26+
27+
2028class ErrorHandler (object ):
2129 """
2230 This class is responsible for handling any HTTP errors that occur
@@ -28,23 +36,18 @@ class ErrorHandler(object):
2836 with an appropriate error code.
2937 """
3038
31- ClientError = "A client error ({error_code}) occurred: {error_message}"
32- ServerError = "A server error ({error_code}) occurred: {error_message}"
33-
3439 def __call__ (self , http_response , parsed , operation , ** kwargs ):
3540 LOG .debug ('HTTP Response Code: %d' , http_response .status_code )
3641 if http_response .status_code >= 500 :
3742 code , message = self ._get_error_code_and_message (parsed )
38- sys .stderr .write (self .ServerError .format (error_code = code ,
39- error_message = message ))
40- sys .stderr .write ('\n ' )
41- sys .exit (http_response .status_code - 399 )
43+ msg = "A server error ({error_code}) occurred: {error_message}"
44+ msg = msg .format (error_code = code , error_message = message )
45+ raise ServerError (msg )
4246 if http_response .status_code >= 400 or http_response .status_code == 301 :
4347 code , message = self ._get_error_code_and_message (parsed )
44- sys .stderr .write (self .ClientError .format (error_code = code ,
45- error_message = message ))
46- sys .stderr .write ('\n ' )
47- sys .exit (http_response .status_code - 399 )
48+ msg = "A client error ({error_code}) occurred: {error_message}"
49+ msg = msg .format (error_code = code , error_message = message )
50+ raise ClientError (msg )
4851 return 0
4952
5053 def _get_error_code_and_message (self , response ):
0 commit comments