Go语言错误处理方法示例1:
func writeFile(filename string) {
file, err := os.OpenFile(filename, os.O_EXCL|os.O_CREATE, 0666)
// 如果文件"filename"存在,则会报错
// 错误处理
if err != nil {
fmt.Println("Error:", err.Error())
// 或者: fmt.Println("Error:", err)
return
}
defer file.Close()
writer := bufio.NewWriter(file)
defer writer.Flush()
f := fib.Fibonacci()
for i := 0; i < 20; i++ {
fmt.Fprintln(writer, f())
}
}
func main() {
writeFile("fib.txt")
}
Go语言错误处理方法示例2:
func writeFile(filename string) {
file, err := os.OpenFile(filename, os.O_EXCL|os.O_CREATE, 0666)
// 自己生成错误
// err = errors.New("this is a custom error")
// 错误处理
if err != nil {
if pathError, ok := err.(*os.PathError); ok {
// 如果err是已知类型(pathError),则作以下处理...
fmt.Printf("%s, %s, %s\n", pathError.Op, pathError.Path, pathError.Err)
// open, fib.txt, file exists
} else {
// 如果err是未知类型,则作以下处理...
fmt.Println("unknown error", err)
}
return
}
defer file.Close()
writer := bufio.NewWriter(file)
defer writer.Flush()
f := fib.Fibonacci()
for i := 0; i < 20; i++ {
fmt.Fprintln(writer, f())
}
}
func main() {
writeFile("fib.txt")
}