您的位置:首页 > 编程语言 > Go语言

golang错误处理之panic和recover

2015-12-13 21:46 555 查看
panic()类似c++中的throw

recover()类似c++中的catch

func CopyFile(SrcFileName, DstFileName string) (w int64, err error) {
defer func() {
if r := recover(); r != nil {
fmt.Printf("Runtime error is %v\n", r)
}
}()

SFile, e := os.Open(SrcFileName)
if e != nil {
panic("the src file is not exist...")
return
}
defer SFile.Close()

DFile, e := os.Create(DstFileName)
if e != nil {
panic("the dst file is not exist...")
return
}
defer DFile.Close()

// anonymous function
/*
defer func() {
SFile.Close()
DFile.Close()
}
*/
return io.Copy(DFile, SFile)
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: