According to MSDN – IValueConverter:
The data binding engine does not catch exceptions that are thrown by a
user-supplied converter. Any exception that is thrown by the Convert
method, or any uncaught exceptions that are thrown by methods that the
Convert method calls, are treated as run-time errors. Handle
anticipated problems by returning DependencyProperty.UnsetValue.
The key line is Handle anticipated problems by returning DependencyProperty.UnsetValue.