         // > On unix, if a symlink to a database file is opened, then the
         // > corresponding journal files are based on the actual filename,
         // > not the symlink name.
-        let fileNames = try! fm.contentsOfDirectory(atPath: directoryPath).filter({ $0.hasPrefix(databaseFileName) })
+        let fileNames = try fm.contentsOfDirectory(atPath: directoryPath).filter({ $0.hasPrefix(databaseFileName) })
         for fileName in fileNames {
             do {
                 try fm.setAttributes(attributes, ofItemAtPath: (directoryPath as NSString).appendingPathComponent(fileName))
             } catch let error as NSError {
                 guard error.domain == NSCocoaErrorDomain && error.code == NSFileNoSuchFileError else {
-                    try! { throw error }()
-                    preconditionFailure()
+                    throw error
                 }
             }
         }

        let directoryPath = (path as NSString).deletingLastPathComponent
        
        // Apply file attributes on existing files
        DatabaseStore.setFileAttributes(
            directoryPath: directoryPath,
            databaseFileName: databaseFileName,
            attributes: attributes)

        // Configure dispatch source
        source.setEventHandler {
            // Directory has been modified: apply file attributes on unprocessed files
            try! DatabaseStore.setFileAttributes(
                directoryPath: directoryPath,
                databaseFileName: databaseFileName,
                attributes: attributes)
