• 程序的异常处理


    二.什么时候处理异常
    仅当以下一种或多种情况时,我们的代码才需要抓住异常
    1.       记录异常(logging)
    将异常记录到日志中,便于support人员查找错误原因。
    2.       为这个异常添加相关信息(wrap exception)
    加发生异常的环境信息记录,并产生新异常,交给调用本方法的代码负责处理。
    3.       执行清理工作
    比如关闭数据库连接,Dispose对象,Rollback,Compensate操作等。
    4.       尝试从异常中恢复
    比如程序可以取一个默认值让程序继续进行(上次举过实时显示设备温度的程序的例子,当程序请求设备,但设备有时会因为响应
    超时导致程序异常,这是程序可以捕捉这个异常,以上次取得的温度结果显示给用户)
    常见的例子还有数据库连接突然断掉,或者插入数据时主键冲突(有可能是输入错误,也有可能同一条数据被别的用户先插入到数据库了)。
    5.       隐藏异常敏感信息,替换成友好信息给用户。
    四.处理异常的指导意见:
    1.       除非是第二点处提到的时候,其他时候不要处理异常
    2.       在程序里的边界处处理异常(比如逻辑层的最上面一层,调用的服务处,UI等),并且屏蔽掉敏感信息,只保留对当前层次安全的信息。
    3.       通过自定义异常的名字来表达异常类型,应该怎么处理,是否能恢复。
     
    摘自http://www.cnblogs.com/xd125/archive/2011/07/08/2100973.html
  • 相关阅读:
    BZOJ4008: [HNOI2015]亚瑟王
    BZOJ4260: Codechef REBXOR
    BZOJ4408: [Fj Winter Camp 2016]神秘数
    BZOJ4010: [HNOI2015]菜肴制作
    ccc2016
    BZOJ3884: 上帝与集合的正确用法
    BZOJ1017: [JSOI2008]魔兽地图DotR
    BZOJ1011: [HNOI2008]遥远的行星
    BestCoder Round #73
    hdu4035(概率dp)
  • 原文地址:https://www.cnblogs.com/cc299/p/7595744.html
Copyright © 2020-2023  润新知