Так тип возврата тоже надо контролировать
Смотри. Беру функцию в Go - вижу, что она возвращает прямо по её описанию. Если есть возврат err - значит может возникнуть ошибка.
Беру функцию в си. То, что она может вернуть исключение, нигде не написано, разве что её целиком читать и искать места исключений.