summaryrefslogtreecommitdiff
path: root/retrying.py
diff options
context:
space:
mode:
authorSimon Dollé <simon.dolle@gmail.com>2014-06-15 16:36:20 +0200
committerSimon Dollé <simon.dolle@gmail.com>2014-06-15 16:47:14 +0200
commit017dfa7efef5c0d84c83179c08633b82bd9a4eb2 (patch)
treea75980099313dbae10952f410ce9a1dd5c5c001f /retrying.py
parent868fcd8ede2d72fa5afb0207efbdfb430edeff07 (diff)
downloadretrying-017dfa7efef5c0d84c83179c08633b82bd9a4eb2.tar.gz
If possible, raise the last exception when stopping
When we stop retrying because of recurring exceptions, we expect the decorator to raise the last exception. (if wrap_exception==False) This commit fixes issue #8.
Diffstat (limited to 'retrying.py')
-rw-r--r--retrying.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/retrying.py b/retrying.py
index b337744..0efd112 100644
--- a/retrying.py
+++ b/retrying.py
@@ -237,7 +237,10 @@ class Retrying(object):
delay_since_first_attempt_ms = int(round(time.time() * 1000)) - start_time
if self.stop(attempt_number, delay_since_first_attempt_ms):
- raise RetryError(attempt)
+ if not self._wrap_exception and attempt.has_exception:
+ raise attempt.get()
+ else:
+ raise RetryError(attempt)
else:
sleep = self.wait(attempt_number, delay_since_first_attempt_ms)
time.sleep(sleep / 1000.0)