Handle cleanups in try/except blocks

This commit is contained in:
Oleksii Shevchuk 2018-09-23 22:45:30 +03:00
parent 10e4c62453
commit ac3bcc1675
1 changed files with 10 additions and 8 deletions

View File

@ -17,12 +17,14 @@
import rpyc.core.service
import rpyc
import sys
import logging
import traceback
import json
import zlib
import msgpack
from . import getLogger
logger = getLogger('service')
from pupylib.PupyCredentials import Credentials
class PupyService(rpyc.Service):
@ -105,7 +107,10 @@ class PupyService(rpyc.Service):
def on_disconnect(self):
self.pupy_srv.remove_client(self)
for cleanup in self._local_cleanups:
cleanup()
try:
cleanup()
except Exception, e:
logger.exception(e)
# Compatibility call
def exposed_set_modules(self, modules):
@ -116,11 +121,8 @@ class PupyService(rpyc.Service):
try:
self.namespace = self._conn.root.namespace
except Exception:
if logging.getLogger().getEffectiveLevel()==logging.DEBUG:
raise
else:
return
except Exception, e:
logger.exception(e)
self.execute = self._conn.root.execute
try:
@ -146,7 +148,7 @@ class PupyService(rpyc.Service):
self.pupy_srv.add_client(self)
except Exception:
logging.error(traceback.format_exc())
logger.error(traceback.format_exc())
try:
self._conn.close()
except: