So I assume it has multiple returns? Some smart built in error class I could actually see that removing the need for exceptions, yes.
One new way I've found interesting in obj c is giving functions (an) error handling block argument(s). It nicely does what java unhandled exceptions warnings do: make the user aware of his actions.
Try writing a few things in Go. I very much doubt you'll respond like this afterwards.