Pro / Cons of errorString()方法的异常

时间:2013-12-16 12:41:06

标签: java c++ qt exception-handling error-handling

我通常使用Qt框架在C ++中编码。对于错误处理,我使用Qt使用的标准,当函数意外运行时调用errorString()之类的函数。对于我正在进行的当前项目,我需要用Java编写我的代码,并且在Java中使用带有 try-catch-finally 机制的异常是很常见的。

我的问题是,在Java中使用errorString()类似方法进行错误处理会是一个很大的错误。使用errorString()以外的异常有哪些优缺点。

谢谢。

2 个答案:

答案 0 :(得分:3)

优点是(根据Oracle的Advantages of Exceptions文章):

  • 将错误处理代码与“常规”代码分开
  • 在调用堆栈中传播错误
  • 分组和区分错误类型

编写惯用代码通常是一个好主意,坚持你所开发语言的惯例和实践。正如我所看到的,这本身就是一个优势。

就缺点而言,在我的头脑中:

  • 这对于懒惰的程序员来说真的很烦人,因为你必须在try / catch中包含你的代码,这可能会使忽略异常变得更加困难(我认为这是一个优势)。
  • 很容易被不熟悉这个概念的程序员滥用,反过来,你会在一个神秘的家庭酿造错误报告系统之上获得严重丑化的代码库。

至于它是否会出错,好吧,只要整个团队都是Qt主谋并且必须在意外的基础上用Java编写一些东西,这段代码永远不会必须由任何应该是Java专家的人管理,然后确保 - 为自己和团队创造一个熟悉的环境。但在任何其他情况下,我强烈建议您使用例外。

答案 1 :(得分:0)

优势完全取决于您的实现...例如,请参阅,您可以捕获一个特定的异常,将其包装并抛出其父异常(一种非常广泛使用的机制......)。通过这种方式,您可以拥有异常层次结构,并以一般方式处理所有异常...假设您有一个数据库,并且由于某种原因假设您遇到连接异常......现在,您不必担心处理该异常然后..你说你的方法“抛出”这个异常并让调用者担心它...调用者可能会等待一段时间再尝试连接到DB ,,,此外你可以使用finally来释放资源/ clean up ...你正在做的不仅仅是errorString()(打印错误信息..)。如果你想要,你也可以在这里包括登录..