Golang Day6
Error Handler
- Defer
- Panic
- Recover
Defer
- 會將該函式加入排程,當最後一個函式執行完畢時,會呼叫被宣告 defer 的函式
- 通常用於需要以某種方式釋放資源時,比如開啟檔案之後要確保會關閉檔案
package main
import(
"fmt"
)
func first(){
fmt.Println("this is first")
}
func second(){
fmt.Println("this is second")
}
func third(){
fmt.Println("this is third")
}
func main(){
defer second()
first()
third()
/*
f,_:=os.Open(filename)
defer f.Close()
*/
}
Panic & Recover
- panic 會產生 run-time error
- recover 會停止 panic 並回傳在 panic 中所帶入的參數
- 通常 defer、panic、recover 會搭配一起使用
package main
import(
"fmt"
)
func main(){
/* 此範例中,recover 並不會被執行,因為當執行 panic 時,已終止 main 執行
panic("execute error")
str:=recover()
fmt.Println(str)
*/
//搭配 defer 使用
defer func(){
str:=recover()
fmt.Println(str)
}()
panic("execute error")
}
Q:
- _ 的作用為何 ? 該如何使用 ?
0 意見