private static String get(final Throwable assertion, final Map<Class<?>, Field> staticMap, final String fieldName) throws IllegalAccessException, NoSuchFieldException {
    Class<? extends Throwable> assertionClass = assertion.getClass();
    for (Class<?> comparisonClass : staticMap.keySet()) {
      if (comparisonClass.isAssignableFrom(assertionClass)) {
        return (String)staticMap.get(comparisonClass).get(assertion);
      }
    }

    Field field = assertionClass.getDeclaredField(fieldName);
    field.setAccessible(true);
    return (String)field.get(assertion);
  }
private static String get(final Throwable assertion, final Map<Class<?>, Field> staticMap, final String fieldName)