golang中錯誤處理
阿新 • • 發佈:2022-02-24
package main import ( "errors" "fmt" ) //錯誤處理 /* 1.在預設情況下,當發生錯誤後,程式就會退出 2.當發生錯誤後,可以捕獲到錯誤,並進行處理,保證程式可以繼續執行。 3.還可以在捕獲錯誤後,給管理員一個提示。 defer,panic,recover Go丟擲一個panic異常,然後在defer中通過recover捕獲這個異常,正常處理 加入預警程式碼,可以讓程式更加健壯 */ func test() { //處理異常 defer func() { err := recover() //可以捕獲到異常 if err != nil { fmt.Println("err=", err) //可以將錯誤傳送給管理員 } }() num1 := 10 num2 := 0 res := num1 / num2 //異常 fmt.Println("res=", res) } /* 自定義錯誤 Go程式中,支援自定義錯誤,使用errors.New和panic內建函式 errors.New("錯誤說明"),會返回一個error型別的值,表示一個錯誤 panic內建函式,接受一個interface{}型別的值作為引數,可以接受error型別的變數,輸出錯誤資訊並退出程式 */ //函式讀取配置檔案init.conf的資訊 //如果檔名傳入不正確,我們就返回一個自定義的錯誤 func readConf(name string) (err error) { if name == "config.ini" { //讀取 return nil } else { //返回一個自定義的錯誤 return errors.New("檔案讀取錯誤") } } func test02() { err := readConf("config2.ini") if err != nil { //如果讀取檔案傳送錯誤,就輸出這個錯誤並終止程式 panic(err) } fmt.Println("test02()繼續執行") } func main() { test() test02() fmt.Println("後續~") }