Skip to content

Commit 99ba184

Browse files
committed
Using six.reraise to preserve traceback (Python 3 feature backport).
1 parent 73947fd commit 99ba184

File tree

1 file changed

+5
-2
lines changed
  • datastore/google/cloud/datastore

1 file changed

+5
-2
lines changed

datastore/google/cloud/datastore/_gax.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717

1818
import contextlib
19+
import sys
1920

2021
from google.cloud.gapic.datastore.v1 import datastore_client
2122
from google.cloud.proto.datastore.v1 import datastore_pb2_grpc
@@ -79,14 +80,16 @@ def _grpc_catch_rendezvous():
7980
if error_class is None:
8081
raise
8182
else:
82-
raise error_class(exc.cause.details())
83+
new_exc = error_class(exc.cause.details())
84+
six.reraise(error_class, new_exc, sys.exc_info()[2])
8385
except exceptions.GrpcRendezvous as exc:
8486
error_code = exc.code()
8587
error_class = _GRPC_ERROR_MAPPING.get(error_code)
8688
if error_class is None:
8789
raise
8890
else:
89-
raise error_class(exc.details())
91+
new_exc = error_class(exc.details())
92+
six.reraise(error_class, new_exc, sys.exc_info()[2])
9093

9194

9295
class _DatastoreAPIOverGRPC(object):

0 commit comments

Comments
 (0)