I have two lines that overlap, so I clip the overlap, and I should get its length in kilometers. 

The clip part is ok but I can't find any resources on how to get the length. It can be printed in the console or add a field in the clipped shapefile that contains the km length. I used this [guide][1] but didn't work.

    import processing
    from PyQt5.QtCore import QVariant
  
    overlay_layer = QgsProject.instance().mapLayersByName("route2")[0]
    bottom_layer = QgsProject.instance().mapLayersByName("route1")[0]
    overlap = r'C:\Users\imper\Documents\python\calculate_overlap_lines\overlap.shp'

    # clip overlap
    processing.run("native:clip", {'INPUT': bottom_layer, \
    'OVERLAY': overlay_layer, \
    'OUTPUT': overlap})
    iface.addVectorLayer(overlap, '', 'ogr')

    # get length
    overlap_lyr = QgsProject.instance().mapLayersByName("overlap")[0]
    for overlap_lyr in QgsMapLayerRegistry.instance().mapLayers().values():
        features = overlap_lyr.getFeatures()
        for f in features:
            geom = f.geometry()
            leng = geom.length()
            res = overlap_lyr.dataProvider().addAttributes([QgsField("Length", QVariant.Int)])
            overlap_lyr.updateFields()
            fieldIndex = overlap_lyr.dataProvider().fieldNameIndex("Length")
            attrFeatMap = {}
            attrMap = { fieldIndex : leng }
            for feature in overlap_lyr.getFeatures():
                attrFeatMap[ feature.id() ] = attrMap
            overlap_lyr.dataProvider().changeAttributeValues(attrFeatMap)

I'm getting this error `raise QgsProcessingException(msg)
_core.QgsProcessingException: There were errors executing the algorithm.`
  
[1]: https://gis.stackexchange.com/questions/168871/calculate-line-lengths-with-python-in-qgis