diff --git a/picard/coverartimage.py b/picard/coverartimage.py index 3e79ced63..735d450e6 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -304,10 +304,13 @@ class CoverArtImage: @property def data(self): - """Reads the data from the temporary file created for this image. May - raise IOErrors or OSErrors. + """Reads the data from the temporary file created for this image. + May raise CoverArtImageIOError """ - return self.datahash.data + try: + return self.datahash.data + except (OSError, IOError) as e: + raise CoverArtImageIOError(e) @property def tempfile_filename(self): diff --git a/picard/ui/infodialog.py b/picard/ui/infodialog.py index cf64a3962..0c5d24e47 100644 --- a/picard/ui/infodialog.py +++ b/picard/ui/infodialog.py @@ -23,6 +23,7 @@ import traceback from PyQt4 import QtGui, QtCore from picard import log from picard.coverartarchive import translate_caa_type +from picard.coverartimage import CoverArtImageIOError from picard.util import format_time, encode_filename, bytes2human from picard.ui import PicardDialog from picard.ui.ui_infodialog import Ui_InfoDialog @@ -57,11 +58,12 @@ class InfoDialog(PicardDialog): if image.thumbnail: try: data = image.thumbnail.data - except: + except CoverArtImageIOError as e: + log.warning(unicode(e)) pass else: data = image.data - except (OSError, IOError) as e: + except CoverArtImageIOError: log.error(traceback.format_exc()) continue item = QtGui.QListWidgetItem()