diff options
Diffstat (limited to 'pyasn1/type/univ.py')
-rw-r--r-- | pyasn1/type/univ.py | 24 |
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): |