в общем это два разных подхода со своими плюсами и минусами.
минус с эксепшнами - это что если обрабатывать каждую функцию и обрамлять её в try {...} catch ... получится гораздо многословнее..
в тоже время, эксепшны позволяют писать код более красиво и наглядно, как например в dlangui, где изменение параметра объекта возвращает новый объект и ты продолжаешь и дальше функциями изменять объект как надо. в go - так не выйдет.