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)
}
本文介绍了一个使用Go语言实现的文件复制功能,并演示了如何通过panic和recover机制进行错误处理。该示例展示了如何打开源文件和目标文件,执行文件复制操作,并在遇到错误时终止程序执行。
646

被折叠的 条评论
为什么被折叠?



