summaryrefslogtreecommitdiff
path: root/pyasn1/type/univ.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyasn1/type/univ.py')
-rw-r--r--pyasn1/type/univ.py24
1 files changed, 12 insertions, 12 deletions
diff --git a/pyasn1/type/univ.py b/pyasn1/type/univ.py
index 4c8c8e4..7d88957 100644
--- a/pyasn1/type/univ.py
+++ b/pyasn1/type/univ.py
@@ -825,9 +825,9 @@ class OctetString(base.AbstractSimpleAsn1Item):
elif isinstance(value, unicode):
try:
return value.encode(self.encoding)
- except (LookupError, UnicodeEncodeError):
- raise error.PyAsn1Error(
- "Can't encode string '%s' with codec %s" % (value, self.encoding)
+ except (LookupError, UnicodeEncodeError) as e:
+ raise error.PyAsn1StringEncodeError(
+ "Can't encode string '%s' with codec %s" % (value, self.encoding), e
)
elif isinstance(value, (tuple, list)):
try:
@@ -846,9 +846,9 @@ class OctetString(base.AbstractSimpleAsn1Item):
try:
return self._value.decode(self.encoding)
- except UnicodeDecodeError:
- raise error.PyAsn1Error(
- "Can't decode string '%s' with codec %s" % (self._value, self.encoding)
+ except UnicodeDecodeError as e:
+ raise error.PyAsn1StringDecodeError(
+ "Can't decode string '%s' with codec %s" % (self._value, self.encoding), e
)
def asOctets(self):
@@ -864,9 +864,9 @@ class OctetString(base.AbstractSimpleAsn1Item):
elif isinstance(value, str):
try:
return value.encode(self.encoding)
- except UnicodeEncodeError:
- raise error.PyAsn1Error(
- "Can't encode string '%s' with '%s' codec" % (value, self.encoding)
+ except UnicodeEncodeError as e:
+ raise error.PyAsn1StringEncodeError(
+ "Can't encode string '%s' with '%s' codec" % (value, self.encoding), e
)
elif isinstance(value, OctetString): # a shortcut, bytes() would work the same way
return value.asOctets()
@@ -881,9 +881,9 @@ class OctetString(base.AbstractSimpleAsn1Item):
try:
return self._value.decode(self.encoding)
- except UnicodeDecodeError:
- raise error.PyAsn1Error(
- "Can't decode string '%s' with '%s' codec at '%s'" % (self._value, self.encoding, self.__class__.__name__)
+ except UnicodeDecodeError as e:
+ raise error.PyAsn1StringDecodeError(
+ "Can't decode string '%s' with '%s' codec at '%s'" % (self._value, self.encoding, self.__class__.__name__), e
)
def __bytes__(self):