| 1234567891011121314151617181920212223242526272829303132 |
- package main
- import (
- "fmt"
- "unicode"
- )
- type customError uint
- func (c customError) Error() string {
- return fmt.Sprintf("цифра, индекс %d", c)
- }
- func errorInString(str string) error {
- // Полезная работа со строкой проигнорирована
- for i, s := range str {
- if unicode.IsDigit(s) {
- return customError(i)
- }
- }
- return nil
- }
- func main() {
- err := errorInString("string1string")
- if err != nil {
- fmt.Printf("Ошибка обработана: %v\n", err)
- }
- if cError, ok := err.(customError); ok {
- fmt.Printf("Контекст: %d\n", cError)
- }
- }
|