Patrones de manejo de errores

El idioma que escribirás mil veces

Como los errores son valores, manejarlos es solo un if. El programa de Go está salpicado con este bloque exacto:

result, err := doSomething()
if err != nil {
    return result, err
}

Se ve repetitivo, y lo es — a propósito. Cada falla es visible en el punto exacto donde ocurre; nada queda oculto en un throw invisible. Al leer una función de Go de arriba a abajo, ves cada lugar donde puede detenerse. Esa explicitud es la decisión que Go toma a propósito.