added comprehensive error handling that provides meaningful context and graceful

degradation
This commit is contained in:
HERITAGE-XION 2026-01-10 15:03:34 +01:00
parent 418ccb218d
commit a8fa327f09
2 changed files with 20 additions and 3 deletions

View File

@ -18,6 +18,8 @@ from pptx import Presentation
from src.services.metadata_handler import MetadataHandler
from src.utils.exceptions import (
MetadataNotFoundError,
MetadataProcessingError,
MetadataReadingError,
UnsupportedFormatError,
)
@ -117,6 +119,8 @@ class PowerpointHandler(MetadataHandler):
self.keys_to_delete.append(attr)
return self.metadata
except Exception as e:
raise MetadataReadingError(f"error reading metadata. {e}")
finally:
del prs
@ -139,7 +143,8 @@ class PowerpointHandler(MetadataHandler):
# Clear each property marked for deletion
for attr in self.keys_to_delete:
self.processed_metadata[attr] = None
except Exception as e:
raise MetadataProcessingError(f"error processing metadata. {e}")
finally:
del prs
@ -170,5 +175,7 @@ class PowerpointHandler(MetadataHandler):
setattr(prs.core_properties, attr, self.processed_metadata[attr])
prs.save(str(destination_file_path))
except Exception as e:
raise MetadataProcessingError(f"error processing metadata. {e}")
finally:
del prs

View File

@ -16,7 +16,12 @@ from typing import Any
from docx import Document # type: ignore[import-untyped]
from src.services.metadata_handler import MetadataHandler
from src.utils.exceptions import MetadataNotFoundError, UnsupportedFormatError
from src.utils.exceptions import (
MetadataNotFoundError,
MetadataProcessingError,
MetadataReadingError,
UnsupportedFormatError,
)
# Supported Word document formats
FORMAT_MAP = {
@ -111,6 +116,8 @@ class WorddocHandler(MetadataHandler):
self.keys_to_delete.append(attr)
return self.metadata
except Exception as e:
raise MetadataReadingError(f"error reading metadata. {e}")
finally:
del doc
@ -133,7 +140,8 @@ class WorddocHandler(MetadataHandler):
# Clear each property marked for deletion
for attr in self.keys_to_delete:
self.processed_metadata[attr] = None
except Exception as e:
raise MetadataProcessingError(f"error processing metadata. {e}")
finally:
del doc
@ -164,5 +172,7 @@ class WorddocHandler(MetadataHandler):
setattr(doc.core_properties, attr, self.processed_metadata[attr])
doc.save(str(destination_file_path))
except Exception as e:
raise MetadataProcessingError(f"error processing metadata. {e}")
finally:
del doc