improve error handling
This commit is contained in:
parent
265dbb1a57
commit
95dc8b186e
@ -522,7 +522,9 @@ class Module(HasAccessibles):
|
||||
if validate:
|
||||
value = pobj.datatype(value)
|
||||
except Exception as e:
|
||||
err = e
|
||||
# allow to assign an exception to trigger an error_update message
|
||||
err = value if isinstance(value, Exception) else e
|
||||
changed = False
|
||||
else:
|
||||
changed = pobj.value != value or pobj.readerror
|
||||
# store the value even in case of error
|
||||
@ -655,10 +657,13 @@ class Module(HasAccessibles):
|
||||
self.pollInfo.pending_errors.discard(rfunc.__name__)
|
||||
except Exception as e:
|
||||
if getattr(e, 'report_error', True):
|
||||
self.log.debug('error in %r', rfunc)
|
||||
name = rfunc.__name__
|
||||
self.pollInfo.pending_errors.add(name) # trigger o.k. message after error is resolved
|
||||
if isinstance(e, SECoPError):
|
||||
e.raising_methods.append(name)
|
||||
if name == 'doPoll':
|
||||
# otherwise the method is already appended in rfunc
|
||||
e.raising_methods.append(f'{self.name}.{name}')
|
||||
if e.silent:
|
||||
self.log.debug('%s', e.format(False))
|
||||
else:
|
||||
@ -666,7 +671,7 @@ class Module(HasAccessibles):
|
||||
if raise_com_failed and isinstance(e, CommunicationFailedError):
|
||||
raise
|
||||
else:
|
||||
# not a SECoPError: this is proabably a programming error
|
||||
# not a SECoPError: this is probably a programming error
|
||||
# we want to log the traceback
|
||||
self.log.error('%s', formatException())
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user