Java正确使用异常和成本

时间:2014-01-08 19:36:05

标签: java exception exception-handling error-handling runtime-error

我正在尝试采用稍微更严格的方法来编写此类。我不是按照惯常的牛仔编码风格,而是先创建方法,变量,评论......所有这些都是爵士乐。

所以现在这里是异常的概念。

我应该想一想“这个功能可能出现的问题是什么?”并为每个抛出异常(如果现有的不足以描述,那么创建一个新的)?这似乎是最精确的选择。

如果思路是“这些事情可能会出错,我会抛出其他一切的一般例外。”

怎么样“没有什么可能会出错,我不需要抛出异常,更糟糕的是我可以抛出一个运行时异常,因为有些东西出错了......”

我担心的是错误处理的表现。理想情况下,我可以想象Java只是将这些异常转换为漂亮的小if语句或某种跳转语句。我想这只能花费一个操作左右。

我还可以想象Java为了抽象而创建了一个深度调用20马戏团,也许它们代价很高,我应该假装我再次使用C编码?

我以愚蠢的方式写了这个问题,因为这对我们两个人来说都更有趣,但这是一个严肃的问题。我确信有一些平衡,可能是一个经验法则或十个。您如何看待例外情况?

编辑:我不是建议我使用例外进行处理。我所说的是异常的数量和准确性(可能是多么具体的错误?)。

1 个答案:

答案 0 :(得分:2)

异常在运行时更加昂贵,因此不应将其用作“正常”处理的一部分。

例外情况适用于特殊情况。预期的故障不应该产生异常。例如,提供无效输入的用户(错误的密码,无效的邮政编码等)不应产生异常。

例外是错误和严重的不可恢复的系统故障。

请注意,JDBC使用异常的设计很差(根据我建议的原则)。