diff --git a/sphinx/builders/html.py b/sphinx/builders/html.py index 8ff628c90..ca3d61616 100644 --- a/sphinx/builders/html.py +++ b/sphinx/builders/html.py @@ -159,17 +159,19 @@ class StandaloneHTMLBuilder(Builder): old_config_hash = old_tags_hash = '' try: fp = open(path.join(self.outdir, '.buildinfo')) - version = fp.readline() - if version.rstrip() != '# Sphinx build info version 1': - raise ValueError - fp.readline() # skip commentary - cfg, old_config_hash = fp.readline().strip().split(': ') - if cfg != 'config': - raise ValueError - tag, old_tags_hash = fp.readline().strip().split(': ') - if tag != 'tags': - raise ValueError - fp.close() + try: + version = fp.readline() + if version.rstrip() != '# Sphinx build info version 1': + raise ValueError + fp.readline() # skip commentary + cfg, old_config_hash = fp.readline().strip().split(': ') + if cfg != 'config': + raise ValueError + tag, old_tags_hash = fp.readline().strip().split(': ') + if tag != 'tags': + raise ValueError + finally: + fp.close() except ValueError: self.warn('unsupported build info format in %r, building all' % path.join(self.outdir, '.buildinfo'))