mirror of
https://github.com/SourceFellows/gobuch.git
synced 2024-10-22 22:05:35 +00:00
50 lines
970 B
Go
50 lines
970 B
Go
|
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("")
|
||
|
}
|