Commit eb6808111cd29294c8a7b8dc501e98f836015983

Authored by Christian Herdtweck
1 parent e97e15a6

create exception MsoExtractionError, raise from mso_file_extract

Showing 1 changed file with 10 additions and 2 deletions
oletools/olevba.py
... ... @@ -304,6 +304,14 @@ class FileOpenError(Exception):
304 304 self.filename = filename
305 305  
306 306  
  307 +class MsoExtractionError(RuntimeError):
  308 + """ raised by mso_file_extract if parsing MSO/ActiveMIME data failed """
  309 +
  310 + def __init__(self, msg):
  311 + super(MsoExtractionError, self).__init__(msg)
  312 + self.msg = msg
  313 +
  314 +
307 315 #--- CONSTANTS ----------------------------------------------------------------
308 316  
309 317 # URL and message to report issues:
... ... @@ -859,7 +867,7 @@ def mso_file_extract(data):
859 867 :param data: bytes string, MSO/ActiveMime file content
860 868 :return: bytes string, extracted data (uncompressed)
861 869  
862   - raise a RuntimeError if the data cannot be extracted
  870 + raise a MsoExtractionError if the data cannot be extracted
863 871 """
864 872 # check the magic:
865 873 assert is_mso_file(data)
... ... @@ -894,7 +902,7 @@ def mso_file_extract(data):
894 902 return extracted_data
895 903 except Exception:
896 904 log.exception('zlib decompression failed')
897   - raise RuntimeError('Unable to decompress data from a MSO/ActiveMime file')
  905 + raise MsoExtractionError('Unable to decompress data from a MSO/ActiveMime file')
898 906  
899 907  
900 908 #--- FUNCTIONS ----------------------------------------------------------------
... ...