go语言中错误的处理和实现自己的错误处理类型
生活随笔
收集整理的這篇文章主要介紹了
go语言中错误的处理和实现自己的错误处理类型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package mainimport ("errors""fmt"
)func main() {/*錯誤:在可能出現問題的地方出現問題, 如打開一個文件打開失敗是意料之中的事情異常:在不該出現錯誤的地方出現錯誤, 如出現空指針,意料之外的情況*///exec.Command("pwd")//exec.Command("ps")//f, err := os.Open("test.txt")//if err != nil {// log.Fatal(err) // print + exit()// //fmt.Println(err)//}//fmt.Println(f.Name(), "打開成功.....")-------------------/*error 內置了數據類型,內置的接口定義了方法:Error() string// The error built-in interface type is the conventional interface for// representing an error condition, with the nil value representing no error.type error interface {Error() string}*/err1 := errors.New("創建測試的錯誤處理函數")fmt.Println(err1)fmt.Printf("%T\n", err1)//另外一個創建錯誤的方法err2 := fmt.Errorf("錯誤的信息:%d", 100)fmt.Println(err2)fmt.Printf("%T\n", err2)fmt.Println("--------------------")err3 := checkAge(-30)if err3 != nil {fmt.Println(err3)return}fmt.Println("程序 go on")fmt.Println("errno demo")
}
func checkAge(age int) (err error) {if age < 0 {//return errors.New("年齡不合法")err = fmt.Errorf("你給的年齡是%d,不合法", age)return}fmt.Println("年齡是:", age)return nil
}
自定義結構體中實現對錯誤接口的實現
可以看到error接口中只有Error一個函數
areaError實現了Error函數,那么按照接口的特性,
總結
以上是生活随笔為你收集整理的go语言中错误的处理和实现自己的错误处理类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 作者:李崇纲,男,北京金信网银金融信息服
- 下一篇: go语言中处处可见的for循环