++ exception handling
This commit is contained in:
		
					parent
					
						
							
								1fba79ca31
							
						
					
				
			
			
				commit
				
					
						bff12ed930
					
				
			
		
					 3 changed files with 9 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -8,6 +8,7 @@ import sys
 | 
			
		|||
from logging.handlers import SysLogHandler
 | 
			
		||||
from uncloud.configure.main import configure_parser
 | 
			
		||||
 | 
			
		||||
from uncloud import UncloudException
 | 
			
		||||
 | 
			
		||||
def exception_hook(exc_type, exc_value, exc_traceback):
 | 
			
		||||
    logging.getLogger(__name__).error(
 | 
			
		||||
| 
						 | 
				
			
			@ -61,5 +62,7 @@ if __name__ == '__main__':
 | 
			
		|||
            mod = importlib.import_module("uncloud.{}.main".format(name))
 | 
			
		||||
            main = getattr(mod, "main")
 | 
			
		||||
            main(**arguments)
 | 
			
		||||
        except UncloudException as err:
 | 
			
		||||
            logger.error(err)
 | 
			
		||||
        except Exception as err:
 | 
			
		||||
            logger.exception(err)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
class UncloudException(Exception):
 | 
			
		||||
    pass
 | 
			
		||||
| 
						 | 
				
			
			@ -2,6 +2,7 @@ import etcd3
 | 
			
		|||
import json
 | 
			
		||||
import queue
 | 
			
		||||
import copy
 | 
			
		||||
from uncloud import UncloudException
 | 
			
		||||
 | 
			
		||||
from collections import namedtuple
 | 
			
		||||
from functools import wraps
 | 
			
		||||
| 
						 | 
				
			
			@ -29,9 +30,9 @@ def readable_errors(func):
 | 
			
		|||
        try:
 | 
			
		||||
            return func(*args, **kwargs)
 | 
			
		||||
        except etcd3.exceptions.ConnectionFailedError as err:
 | 
			
		||||
            raise etcd3.exceptions.ConnectionFailedError(
 | 
			
		||||
                "etcd connection failed."
 | 
			
		||||
            ) from err
 | 
			
		||||
            raise UncloudException(
 | 
			
		||||
                "Cannot connect to etcd: is etcd running as configured in uncloud.conf?"
 | 
			
		||||
            )
 | 
			
		||||
        except etcd3.exceptions.ConnectionTimeoutError as err:
 | 
			
		||||
            raise etcd3.exceptions.ConnectionTimeoutError(
 | 
			
		||||
                "etcd connection timeout."
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue