forked from uncloud/uncloud
++ 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 logging.handlers import SysLogHandler
|
||||||
from uncloud.configure.main import configure_parser
|
from uncloud.configure.main import configure_parser
|
||||||
|
|
||||||
|
from uncloud import UncloudException
|
||||||
|
|
||||||
def exception_hook(exc_type, exc_value, exc_traceback):
|
def exception_hook(exc_type, exc_value, exc_traceback):
|
||||||
logging.getLogger(__name__).error(
|
logging.getLogger(__name__).error(
|
||||||
|
@ -61,5 +62,7 @@ if __name__ == '__main__':
|
||||||
mod = importlib.import_module("uncloud.{}.main".format(name))
|
mod = importlib.import_module("uncloud.{}.main".format(name))
|
||||||
main = getattr(mod, "main")
|
main = getattr(mod, "main")
|
||||||
main(**arguments)
|
main(**arguments)
|
||||||
|
except UncloudException as err:
|
||||||
|
logger.error(err)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logger.exception(err)
|
logger.exception(err)
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
class UncloudException(Exception):
|
||||||
|
pass
|
|
@ -2,6 +2,7 @@ import etcd3
|
||||||
import json
|
import json
|
||||||
import queue
|
import queue
|
||||||
import copy
|
import copy
|
||||||
|
from uncloud import UncloudException
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
@ -29,9 +30,9 @@ def readable_errors(func):
|
||||||
try:
|
try:
|
||||||
return func(*args, **kwargs)
|
return func(*args, **kwargs)
|
||||||
except etcd3.exceptions.ConnectionFailedError as err:
|
except etcd3.exceptions.ConnectionFailedError as err:
|
||||||
raise etcd3.exceptions.ConnectionFailedError(
|
raise UncloudException(
|
||||||
"etcd connection failed."
|
"Cannot connect to etcd: is etcd running as configured in uncloud.conf?"
|
||||||
) from err
|
)
|
||||||
except etcd3.exceptions.ConnectionTimeoutError as err:
|
except etcd3.exceptions.ConnectionTimeoutError as err:
|
||||||
raise etcd3.exceptions.ConnectionTimeoutError(
|
raise etcd3.exceptions.ConnectionTimeoutError(
|
||||||
"etcd connection timeout."
|
"etcd connection timeout."
|
||||||
|
|
Loading…
Reference in a new issue