标准错误处理机制——error
生活随笔
收集整理的這篇文章主要介紹了
标准错误处理机制——error
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在 Golang 中,錯誤處理機制一般是函數返回時使用的,是對外的接口,而異常處理機制 panic-recover 一般用在函數內部。
error 類型介紹
error 類型實際上是抽象了 Error() 方法的 error 接口,Golang 使用該接口進行標準的錯誤處理。
type error interface {Error() string }一般情況下,如果函數需要返回錯誤,就將 error 作為多個返回值中的最后一個(但這并非是強制要求)。參考模型:
func Foo(param int) (n int, err error) {// ... }if n, err := Foo(0); err != nil {// 錯誤處理 }這就是 error 的使用方法,與其他語言的異常相比,Golang 的方法相對更加容易、直觀。
代碼1:經典使用方法
package mainimport ("errors""fmt" )func requireDual(n int) (int, error) {if n&1 == 1 {return -1, errors.New("您輸入不是雙數") //生成一個簡單的 error 類型}return n, nil }func main() {if result, err := requireDual(101); err != nil {fmt.Println("錯誤:", err)} else {fmt.Println("結果:", result)} }輸出結果:
錯誤: 您輸入不是雙數
你有沒有覺得 Golang 的這種錯誤的處理機制非常的簡潔啊,呵呵!
代碼2:擴充下上面的代碼,帶自定義參數的錯誤輸出
package mainimport ("fmt" )type dualError struct {Num intproblem string }func (e dualError) Error() string {return fmt.Sprintf("參數不正確,因為\"%d\"不是雙數", e.Num) }func requireDual(n int) (int, error) {if n&1 == 1 {return -1, dualError{Num: n}}return n, nil }func main() {if result, err := requireDual(101); err != nil {fmt.Println("錯誤:", err)} else {fmt.Println("結果:", result)} }輸出結果
錯誤: 參數不正確,因為"101"不是雙數
轉載于:https://www.cnblogs.com/bing-l/p/4065554.html
總結
以上是生活随笔為你收集整理的标准错误处理机制——error的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP在程序处理过程中动态输出内容
- 下一篇: Oracle11.2.0.4 RAC安装