• 一段良好的程序永远不应该发生panic异常


    panic来自被调函数的信号,表示发生了某个已知的bug。一段良好的程序永远不应该发生panic异常

    对于大部分程序而言,永远无法保证能够成功运行,因为错误原因往往超出程序员的控制范围。任何进行io操作的程序都会面临出错的可能,只有无经验的程序员才会相信读写操作不会失败。

    处理错误的五种策略:

    1. 传递错误

    response, err := http.Get(url)
    	if err != nil {
    		return nil, err
    	}
    

    2. 重新尝试错误的操作:

    对于偶然性发生的错误如网络请求超时、数据库连接超时,可以进行重试,但需要限制重试的时间或次数

    3. 输出错误并结束程序

    response, err := http.Get(url)
    	if err != nil {
    		fmt.Fprintf(os.Stderr, "fetch:%v
    ", err)
    		os.Exit(1)
    	}
    

    4. 输出错误,继续执行

    if err := Ping(); err != nil {
    	log.Printf("ping failed: %v; networking disabled", err)
    }
    

    5. 直接忽略错误

    比如数据库中一个分类删除后,对应的分类目录也要被删除,但不管这个目录是否被成功删除,都不影响这个分类删除的基本目的,出现这种情况,返回相应错误消息供调用者记录而整体结果不受影响。

  • 相关阅读:
    servicestack and redis
    图片服务器
    CRQS介绍
    javascript闭包之购物车加减及提示
    javascript best practices
    EOF
    2012年回顾
    volatile
    通过inode来操作文件
    采样问题
  • 原文地址:https://www.cnblogs.com/x3d/p/6049376.html
Copyright © 2020-2023  润新知