Что в C# выгоднее: делать проверки или обрабатывать исключения?

Я слышал, что в некоторых языках программирования (например, python) обработка исключений происходит намного быстрее нежели проверки перед выполнением инструкции. Также есть и другая группа языков в которой быстрее сделать проверки и лишь в некоторых случаях обработать исключение. Вопрос к какой из этих относится C#? и почему?

C# относится к группе языков в которой лучше делать проверки, поскольку try - catch достаточно дорогостоящая операция. Но это не значит, что нужно отказаться от try - catch, это говорит о том, что всё нужно применять с умом, например если Вы знаете, что у Вас с вероятностью в 80% будет ошибка при обработке инструкции, тогда лучше делайте проверки, при этом можете поместить весь этот код в блок try (влияние его использования при не возникновении ошибки не столь большая).

Более детальнее об этом можете почитать тут.