>>34
It's true. They always had a notion that exceptions would eventually be addressed. The reason they are "needed" is that there are operations that can crash the runtime--simple things like illegal array indexing. Rather than patch that up with existing facilities, they choose to invent a new mechanism. They definitely don't want anyone writing Erlang in Go, so linked processes--basically what you suggest--are out. Oh, but you can implement them on top of the exception handling you are now obligated to implement.
In theory they might standardize the way the libraries treat exceptions to the degree that "library exceptions" takes on consistent semantics. A package might then make sense for handling these exceptions, but I've got no faith that users will reproduce those semantics. The mailing list is filled with fanbois, regurgitating anything said by {Ken|Rob|Russ|etc} in answer to questions about the wisdom of any decision--usually inappropriately. If that's representative of the userbase... well I've seen the code these people write.
It's kind of sad. At first I was hyped for a new concurrent language but then the bad decisions started coming. After a while I realized that goroutines don't even get scheduled very well at all, so any bad decisions I make about when to yield/resume coroutines will trounce Go. The only other interesting thing they did was interfaces, which I still like, but these are not a substitute for generics any more than
void **data is--and manual unboxing is a reputedly slow procedure (much slower than instantiating the unboxed type?
Almost certainly.)