zoukankan      html  css  js  c++  java
  • 什么时候抛出/捕获异常?

    项目基于原有代码进行定制开发,今天发现有个页面没有异常,但是数据没有显示。

    简单调试跟踪,发现代码的最底层有个这样的一个方法(已经艺术加工):

    public DataTable SillyCunt()
    {
        DataTable result = null;
        try
        {
           //美丽的东莞我的家
        }
        catch (Exception ex)
        {
           //记录日志
           result = new DataTable();
        }
        return result;
    }

    其实,一直以来,我也不是很明确异常到底什么时候抛出,什么时候捕获处理了。

    看到这个方法的时候,我找到了答案:异常应当在下层方法中不符合逻辑、出现异常的时候抛出,在上层进行捕获。

    同样的,假使你为别人提供类库方法,在你的方法中,存在问题就应该抛出。

    因为别人代码可能依赖于或者调用你的代码,在调用方可进行异常的捕获,从而能得到最原始的异常信息。

    这就好比,小孩子你饿了,你就哭就是了(throw),没必要在吃奶阶段(下层)就开始坚强。

    而处理问题则交给小孩的母亲(上层),因为她知道小孩可能会存在饿了就会哭的风险(可能会抛出异常),她会进行保护性应对(try catch)

  • 相关阅读:
    hdu 2647 Reward
    hdu 2094 产生冠军
    hdu 3342 Legal or Not
    hdu 1285 确定比赛名次
    hdu 3006 The Number of set
    hdu 1429 胜利大逃亡(续)
    UVA 146 ID Codes
    UVA 131 The Psychic Poker Player
    洛谷 P2491消防 解题报告
    洛谷 P2587 [ZJOI2008]泡泡堂 解题报告
  • 原文地址:https://www.cnblogs.com/talentzemin/p/7514732.html
Copyright © 2011-2022 走看看