summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2000-10-09 16:45:54 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2000-10-09 16:45:54 (GMT)
commit04f4943d132d0d5e9829923706a2cb07a2b0ae9f (patch)
tree26f51d8e66bb89d40b277ebf017c8ddfdcd778f8
parent3383792c74ad6cb8b71bf54985cd54582657561e (diff)
downloadcpython-04f4943d132d0d5e9829923706a2cb07a2b0ae9f.zip
cpython-04f4943d132d0d5e9829923706a2cb07a2b0ae9f.tar.gz
cpython-04f4943d132d0d5e9829923706a2cb07a2b0ae9f.tar.bz2
_exceptions: Format a missing system id as <unknown>.
expatreader: Use the error handler instead of raising exception directly.
-rw-r--r--Lib/xml/sax/_exceptions.py9
-rw-r--r--Lib/xml/sax/expatreader.py3
2 files changed, 7 insertions, 5 deletions
diff --git a/Lib/xml/sax/_exceptions.py b/Lib/xml/sax/_exceptions.py
index 1804f3f..88ec8ca 100644
--- a/Lib/xml/sax/_exceptions.py
+++ b/Lib/xml/sax/_exceptions.py
@@ -79,10 +79,11 @@ class SAXParseException(SAXException):
def __str__(self):
"Create a string representation of the exception."
- return "%s at %s:%d:%d" % (self._msg,
- self.getSystemId(),
- self.getLineNumber(),
- self.getColumnNumber())
+ sysid = self.getSystemId()
+ if sysid is None:
+ sysid = "<unknown>"
+ return "%s:%d:%d: %s" % (sysid, self.getLineNumber(),
+ self.getColumnNumber(), self._msg)
# ===== SAXNOTRECOGNIZEDEXCEPTION =====
diff --git a/Lib/xml/sax/expatreader.py b/Lib/xml/sax/expatreader.py
index 14bc087..1414bb5 100644
--- a/Lib/xml/sax/expatreader.py
+++ b/Lib/xml/sax/expatreader.py
@@ -81,7 +81,8 @@ class ExpatParser(xmlreader.IncrementalParser, xmlreader.Locator):
self._parser.Parse(data, isFinal)
except expat.error:
error_code = self._parser.ErrorCode
- raise SAXParseException(expat.ErrorString(error_code), None, self)
+ exc = SAXParseException(expat.ErrorString(error_code), None, self)
+ self._err_handler.fatalError(exc)
def close(self):
if self._entity_stack: