code: def _check_value_mapping(layer, exposure_key=None):
      index = layer.fields().lookupField(exposure_type_field['field_name'])
      unique_exposure = layer.uniqueValues(index)
      if layer.keywords['layer_purpose'] == layer_purpose_hazard['key']:
          if not exposure_key:
              message = tr('Hazard value mapping missing exposure key.')
              raise InvalidKeywordsForProcessingAlgorithm(message)
          value_map = active_thresholds_value_maps(layer.keywords, exposure_key)
      else:
          value_map = layer.keywords.get('value_map')
      if not value_map:
          return layer
      if layer.keywords['layer_purpose'] == layer_purpose_hazard['key']:
          if not exposure_key:
              message = tr('Hazard classification is missing exposure key.')
              raise InvalidKeywordsForProcessingAlgorithm(message)
          classification = active_classification(layer.keywords, exposure_key)
      else:
          classification = layer.keywords['classification']
      exposure_classification = definition(classification)
      other = None
      if exposure_classification['key'] != data_driven_classes['key']:
          other = exposure_classification['classes'][-1]['key']
      exposure_mapped = []
      for group in list(value_map.values()):
          exposure_mapped.extend(group)
      diff = list(unique_exposure - set(exposure_mapped))
      if other in list(value_map.keys()):
          value_map[other].extend(diff)
      else:
          value_map[other] = diff
      layer.keywords['value_map'] = value_map
      layer.keywords['classification'] = classification
      return layer