Перейти к содержимому

SberPlatform / СберПлатформа

Актуальность: 1 кв 2025

func RecoverAndRun() {
if r := recover(); r != nil {
fmt.Println("return from panic ")
}
}
func main() {
defer func() {
fmt.Println("End work ")
RecoverAndRun()
}()
panic("Panica ")
}
type WorkError struct{}
func (e *WorkError) Error() string {
return "bad work "
}
func work() *WorkError {
return &WorkError{}
}
func main() {
var err error
if err = work(); err != nil {
fmt.Printf("error: %v\n ", err)
} else {
fmt.Println("no errors ")
}
}
func setLength(dst unsafe.Pointer, length int) {
(*reflect.SliceHeader)(dst).Len = length
}
func main() {
m := append(make([]int, 0, 10), 1, 2, 3, 4)
_ = append(m, 5)
fmt.Println(m)
setLength(unsafe.Pointer(&m), 6)
fmt.Println(m)
}