aprendago
aprendago copied to clipboard
Exercício: Capítulo 24, Exercício 3 (Nível: 11)
Exercício: Capítulo 24, Exercício 3 (Nível: 11)
Use esta thread para compartilhar sua solução, discutir o exercício com os colegas e pedir ajuda caso tenha dificuldades!
https://play.golang.org/p/d5zGffaC4CY
package main
import "fmt"
/* - Crie um struct "erroEspecial" que implemente a interface builtin.error.
- Crie uma função que tenha um valor do tipo error como parâmetro.
- Crie um valor do tipo "erroEspecial" e passe-o para a função da instrução anterior. */
type erroEspecial struct {
teste string
}
func (e erroEspecial) Error() string {
return "deu zicaaaa"
}
func erroComoParametro(e error) {
fmt.Println("qualquer:", e.(erroEspecial).teste, "e no metodo error eu tenho:", e)
}
func main() {
arg := erroEspecial{" precisooooooo aprender"}
erroComoParametro(arg)
}
Output
qualquer: precisooooooo aprender e no metodo error eu tenho: deu zicaaaa
Program exited.
package main
import (
"fmt"
)
type erroEspecial struct {
msg string
extra string
}
func (err erroEspecial) Error() string {
return fmt.Sprintf("Algo inesperado aconteceu: %v | %v", err.msg, err.extra)
}
func errorType(err error) {
fmt.Println("Funcão Error Type")
fmt.Println(err.Error())
}
func main() {
meuErro := erroEspecial{msg: "Olá, sou um erro criado!", extra: "Isso não deveria acontecer"}
errorType(meuErro)
}