 
         // Title.
         guard let multilangTitle = mp.mainTitle(from: metadataElement) else {
-            log(level: .error, "Error: no title could be found for the publication. Metadata parsing aborted.")
-            return
+            throw OPFParserError.missingPublicationTitle
         }
         metadata._title = multilangTitle
         // Identifier.


extension OPFParser: Loggable {}

/// EpubParser support class, able to parse the OPF package document.
/// OPF: Open Packaging Format.
public class OPFParser {

    ///
    /// - Parameter document: Parse the Metadata in the XML <metadata> element.
    /// - Returns: The Metadata object representing the XML <metadata> element.
    internal func parseMetadata(from document: AEXMLDocument, to publication: inout Publication) throws {
        /// The 'to be returned' Metadata object.
        var metadata = Metadata()
        let mp = MetadataParser()
