1.1 --- a/vContent.py Mon Sep 28 15:22:33 2015 +0200
1.2 +++ b/vContent.py Mon Sep 28 16:52:50 2015 +0200
1.3 @@ -62,6 +62,12 @@
1.4
1.5 pass
1.6
1.7 +class WriteError(Exception):
1.8 +
1.9 + "General writing errors."
1.10 +
1.11 + pass
1.12 +
1.13 # Reader and parser classes.
1.14
1.15 class Reader:
1.16 @@ -570,12 +576,15 @@
1.17 encoding = parameters.get("ENCODING")
1.18 charset = parameters.get("CHARSET")
1.19
1.20 - if encoding == "QUOTED-PRINTABLE":
1.21 - value = quopri.encodestring(value.encode(charset or "iso-8859-1"))
1.22 - elif encoding == "BASE64":
1.23 - value = base64.encodestring(value)
1.24 + try:
1.25 + if encoding == "QUOTED-PRINTABLE":
1.26 + value = quopri.encodestring(value.encode(charset or "iso-8859-1"))
1.27 + elif encoding == "BASE64":
1.28 + value = base64.encodestring(value)
1.29
1.30 - return self.encode_content(value)
1.31 + return self.encode_content(value)
1.32 + except TypeError:
1.33 + raise WriteError, "Property %r value with parameters %r cannot be encoded: %r" % (name, parameters, value)
1.34
1.35 # Overrideable methods.
1.36