Je trouve que la confusion vient du terme "error" qu'on aurait plutôt du appeler "status" ou quelque chose comme ça. C'est une simple information, pas forcément une erreur.
Par exemple io.EOF, sql.ErrNoRows, j'ai des handlers peuvent renvoyer une "erreur" de type Redirect etc.
Du coup c'est une valeur retournée comme une autre et donc traitée comme n'importe quelle valeur.
Comme Go est au départ utilisé pour du réseau le fait que cette "erreur" doit pouvoir renvoyer un string permet de faire transiter tout ça facilement.
C'est aussi comme les retours de commandes unix qui renvoient 0 1 -1...
Y a un copain qui m'a dit récemment, mais tu gérais les erreurs aussi comme ça en Python !
Les véritables erreurs c'est plutôt les panics qu'on rattrape avec recover.
[^] # Re: Une gestion d’erreur moderne ?
Posté par wilk . En réponse à la dépêche À la découverte du langage V. Évalué à 4.
Je trouve que la confusion vient du terme "error" qu'on aurait plutôt du appeler "status" ou quelque chose comme ça. C'est une simple information, pas forcément une erreur.
Par exemple io.EOF, sql.ErrNoRows, j'ai des handlers peuvent renvoyer une "erreur" de type Redirect etc.
Du coup c'est une valeur retournée comme une autre et donc traitée comme n'importe quelle valeur.
Comme Go est au départ utilisé pour du réseau le fait que cette "erreur" doit pouvoir renvoyer un string permet de faire transiter tout ça facilement.
C'est aussi comme les retours de commandes unix qui renvoient 0 1 -1...
Y a un copain qui m'a dit récemment, mais tu gérais les erreurs aussi comme ça en Python !
Les véritables erreurs c'est plutôt les panics qu'on rattrape avec recover.