Синтаксическая ошибка в исходном коде. "где в тип string вводится int и сообщается об ошибке" - это невозможно в принципе, так как ваш исходный код, в котором нарушено соответствие типов, не является валидной программой (все равно что оставить незакрытую скобку), компилятор не сможет скомпилировать из него никакой бинарный исполнимый файл просто потому, что видит бессмыслицу в таком исходнике.
Если вам не по душе концепция undefined behavior, то переходите на Java или .NET, там компиляторы сами добавляют все необходимые (и обходимые) проверки ценой снижения быстродействия вашей программы.