Как скопировать текст в буфер обмена без экскепкшена?

Здравствуйте.
Есть код:

            string t = "fuck the buffer";
            Clipboard.SetText(t);

Если выполнять его несколько раз, то в какой-то момент произойдет экскепшен: сбой при выполнении запрошенной операции с буфером обмена
Это может произойти сразу при первом вызове, а может при 10-м или 20-м.
Как правильно скопировать текст в буфер обмена без экскепкшена?

Это в основном потоке?

Может быть другое приложение делает что-то с буфером.

Есть SetDataObject с int retryTimes, int retryDelay

Гугл еще говорит, что .Clear перед .Set может помочь.

И тут пример как вывести имя окна мешающего приложения: https://stackoverflow.com/a/17834857/964478

А нафига вообще тут экскепшен? Почему нельзя просто по-тихому вернуть false?

Это я еще давно и без гугла пробовал. Не помогает.

Что мешает сделать свою функцию, просто возвращающую по тихому false в случае неудачи?

Чтобы люди не забывали проверить false, а ловили экзепшн и делали то, что нужно в данной ситуации.

всё-равно крашится