Golang error、panic
error是一個用於標準錯誤處理的介面,是內建的介面型別
type error interface{
Error() string
}
errors包
提供了New方法建立error結構體
Errorf函式
fmt中有一個返回error結構體的方法Errorf,內部使用errors包的New方法實現
panic
當遇到不可恢復的錯誤狀態的時候,如陣列訪問越界、空指標引用等,這些執行時錯誤會引起panic異常。
建立panic
panic內建函式支援任何引數值
func panic(v interface{})
recover
recover用於從panic狀態中恢復並重新獲得流程控制權
func recover() interface{}
recover函式只在defer呼叫的函式中有效
defer func(){
if err:= recover();err !=nil{
fmt.Println(rcover())
}
}