代码之家  ›  专栏  ›  技术社区  ›  ChadNC

抓住非法辩论的最好方法是什么

  •  9
  • ChadNC  · 技术社区  · 16 年前

    什么时候最好地使用这种类型的异常?如果遇到这样的情况,是否正确地处理它?

    catch(Exception e)
    

    还是需要明确地捕捉它?

    catch(IllegalArgumentException e)
    
    4 回复  |  直到 16 年前
        1
  •  15
  •   Jon Skeet    16 年前

    信息技术 将 被第一个抓住了,但其他一些例外也会被抓住。你不应该钓到比你真正想要的更多的鱼。

    第二个更好,如果你真的 为了抓住它。。。但是 通常 这表示调用代码中存在错误。有时这是另一种更高层次的方法无法验证的情况 它的 在理想世界中,任何时候 IllegalArgumentException 在传入值之前,调用方应该有一种方法来验证该值,或者调用将以非异常方式失败的版本(例如 TryParse out 参数)。情况并不总是这样,但只要你有 值得一查,看看你是否 能够 通过在调用方法之前检查值来避免这种情况。

        2
  •  8
  •   Arne Deutsch    16 年前

    您不应该处理IllegalArgumentException。这是为了通知开发人员,他使用错误的参数调用了一个方法。解决方案是,使用其他参数调用该方法。

    catch(IllegalArgumentException e)
    
        3
  •  4
  •   Joey Gumbo    16 年前

    你应该远离我 catch (Exception) 因为那样你会抓到的 可能的例外情况。如果你真的 期待 这个 IllegalArgumentException

        4
  •  0
  •   cjstehno    16 年前

    这真的取决于手头的情况,两者都是正确的。如果不缩小问题的范围,就很难给出“最佳使用”的例子。