Because this is more powerful as it allows to create more resilient programs.
In C you can't recover from a NULL pointer dereference.
In Go you can catch it with recover
.
This allows for example to create in Go an HTTP server that can catch a NULL pointer dereference when handling a request and return an error 500 instead of crashing the whole server.