【发布时间】:2014-10-11 07:39:54
【问题描述】:
所以我想知道在处理代码中可能抛出的异常时,更好的做法是什么。
例如,我有一个项目列表。我是否应该在尝试访问之前检查“i”处的元素是否存在? (如果 list.Count > i),还是应该让代码执行,如果抛出异常则捕获异常?
我一直在做前者,我会编写检查以确保如果我知道它会抛出异常,函数不会被调用。 (边界检查、空值检查等)。但是现在我真的想起来了,我不只是在代码上加倍吗? List 类已经为我进行了边界检查,并引发了适当的异常。为什么我也要做边界检查?我可以省去自己的工作,盲目地调用函数,捕获异常并采取相应的行动。
哪种方式“更正确”?
【问题讨论】:
-
异常处理总是很昂贵的。所以最好主动检查一些条件,避免调用/执行可能导致异常的任务。但是,如果你开始检查每一件事,你最终会得到一大块代码只做各种检查,这可能很难维护/阅读。如果有任何“正确”的方式来处理这种情况,即使我也想知道:-)