From bbb37dbca8e3103f84e62f51833622f0823b0ff7 Mon Sep 17 00:00:00 2001 From: David Vierra Date: Mon, 29 Nov 2010 21:38:41 -1000 Subject: [PATCH] when a second error happens during the fallback attempt, raise both errors --- mclevel.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/mclevel.py b/mclevel.py index 672ad62..682e247 100644 --- a/mclevel.py +++ b/mclevel.py @@ -704,6 +704,9 @@ class MCLevel(object): ''' info( u"Identifying " + filename ) + class LoadingError(RuntimeError): pass + + if not filename: raise IOError, "File not found: "+filename if not os.path.exists(filename): @@ -769,10 +772,13 @@ class MCLevel(object): except Exception, e: info( u"Error during NBT load: {0!r}".format(e) ) info( u"Fallback: Detected compressed flat block array, yzx ordered " ) - lev = MCJavaLevel(filename, data); - lev.compressed = compressed; - return lev; - + try: + lev = MCJavaLevel(filename, data); + lev.compressed = compressed; + return lev; + except Exception, e2: + raise LoadingError, ("Multiple errors encountered", e, e2) + else: if(MCIndevLevel._isTagLevel(root_tag)): info( u"Detected Indev .mclevel" )