aprendago icon indicating copy to clipboard operation
aprendago copied to clipboard

Exercício: Capítulo 24, Exercício 3 (Nível: 11)

Open vkorbes opened this issue 4 years ago • 2 comments

Exercício: Capítulo 24, Exercício 3 (Nível: 11)

Link para o vídeo:

Use esta thread para compartilhar sua solução, discutir o exercício com os colegas e pedir ajuda caso tenha dificuldades!

vkorbes avatar Sep 30 '20 18:09 vkorbes

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.

an4kein avatar Mar 24 '21 20:03 an4kein

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)
}

UdsonWillams avatar May 09 '24 00:05 UdsonWillams