Go语言错误处理方法示例1:

    1. func writeFile(filename string) {
    2. file, err := os.OpenFile(filename, os.O_EXCL|os.O_CREATE, 0666)
    3. // 如果文件"filename"存在,则会报错
    4. // 错误处理
    5. if err != nil {
    6. fmt.Println("Error:", err.Error())
    7. // 或者: fmt.Println("Error:", err)
    8. return
    9. }
    10. defer file.Close()
    11. writer := bufio.NewWriter(file)
    12. defer writer.Flush()
    13. f := fib.Fibonacci()
    14. for i := 0; i < 20; i++ {
    15. fmt.Fprintln(writer, f())
    16. }
    17. }
    18. func main() {
    19. writeFile("fib.txt")
    20. }

    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")
    }