"Now everyone can use Google's Go language on the company's App Engine cloud platform as the company has announced that the Go runtime, which has been in development since it was announced at Google I/O, is now generally available."

the "Defer/Panic/Recover" error handling...it was significantly harder than I expected (mostly because of exception handling)

This was probably your problem. Panic/Recover aren't used for error handling. They are used for handling exceptional situations that the programmer wasn't expecting and thus the program can't handle(usually programmer error). It's intentionally annoying to use to discourage people over using it.

Idiomatic error handling in Go is done using the multiple return statements and checking for returned error values. There are a few tutorials on the website and the language spec is easy to read. The standard library documentation is pretty good(far better than the vagueness of php's docs), but some examples might help new devs.

This was probably your problem. Panic/Recover aren't used for error handling. They are used for handling exceptional situations that the programmer wasn't expecting and thus the program can't handle(usually programmer error). It's intentionally annoying to use to discourage people over using it.

Well, no.. surely the concept is similar as the following (Sorry, OS news seems to flatten the indentation in the preview, so probably the post too):

Well, no.. surely the concept is similar as the following (Sorry, OS news seems to flatten the indentation in the preview, so probably the post too):

It's possible to use panic/recover as a fairly limited traditional exception handling system, but it's not nice to use and Go programmers won't expect it. Similarly you can return null to indicate errors in Java but Java programmers won't expect that either.

Exception handling and Error handling go hand in hand in modern OO languages.

They are distinct concepts and Go treats them as such.
By making them distinct you make your error handling easier to reason about and more resilient to changes in other parts of the code base. Even Java's checked exceptions have a neat trick of hiding the source of an exception from the code that has to handle it.