mirror of
https://github.com/SourceFellows/gobuch.git
synced 2025-07-20 07:02:53 +02:00
initial import
This commit is contained in:
49
golang-language-samples/errors-owntyp-wrap/errors.go
Normal file
49
golang-language-samples/errors-owntyp-wrap/errors.go
Normal file
@ -0,0 +1,49 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
)
|
||||
|
||||
var PermissionError = errors.New("keine Berechtigung")
|
||||
|
||||
//StatementExecutionError ist ein eigener Fehlertyp
|
||||
//mit zusätzlicher Information
|
||||
type StatementExecutionError struct {
|
||||
Statement string
|
||||
Message string
|
||||
Cause error
|
||||
}
|
||||
|
||||
func (wse *StatementExecutionError) Unwrap() error {
|
||||
return wse.Cause
|
||||
}
|
||||
|
||||
//Implementierung der Error Methode des error Interface
|
||||
func (wse *StatementExecutionError) Error() string {
|
||||
return wse.Message
|
||||
}
|
||||
|
||||
func fuehreStatementAus(statement string) error {
|
||||
if statement != "1=1" {
|
||||
return &StatementExecutionError{
|
||||
Statement: statement,
|
||||
Message: "Statement kann nicht ausgeführt werden",
|
||||
Cause: PermissionError,
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func main() {
|
||||
err := fuehreStatementAus("v:=b")
|
||||
//Prüfung über errors Package
|
||||
if errors.Is(err, PermissionError) {
|
||||
log.Fatal("Das Statement konnte nicht ausgeführt werden.")
|
||||
} else {
|
||||
fmt.Println("alles ok")
|
||||
}
|
||||
|
||||
panic("")
|
||||
}
|
Reference in New Issue
Block a user