public <T> T mandatoryConvertTo(Class<T> type, Exchange exchange, Object value) throws NoTypeConversionAvailableException {
Object answer;
try {
answer = doConvertTo(type, exchange, value);
} catch (Exception e) {
throw new NoTypeConversionAvailableException(value, type, e);
}
if (answer == Void.TYPE || value == null) {
// Could not find suitable conversion
throw new NoTypeConversionAvailableException(value, type);
} else {
return (T) answer;
}
}