项目中的异常问题

时间:2014-03-19 12:47:12

标签: java exception try-catch

我正在编写程序,在编码的一个点上,我有代码会生成异常每次,我需要这样做。

在其他意义上,我希望使用 catch 阻止尝试阻止。

我想知道这种编码可能会在Apllication中产生问题(将来部署后),因为总会发生异常?

有害吗?

try{
//throws exception every time
}
catch(Exception e)
{
//coding//Important part of code
}

我有其他解决方案,但我想知道的是由此类代码引起的问题

我同意这是错的,但我的问题是这可以创造什么问题?

2 个答案:

答案 0 :(得分:1)

你要做的是无限错!!!因为你还没有发布任何细节,我假设你抛出了不同的异常,然后根据抛出异常的类型做了一些事情。

更好的方法是返回一个值(可能是enum)并根据它的值而不是抛出的异常的类型进行处理。当然有更好的方法解决这个问题,但除非你提供更多关于你要做什么的详细信息,否则我不能说任何具体的事情。

只应在例外案例中使用Eceptions,因为:

  1. 每个人都希望
  2. 没人会指望你的用例
  3. 与例如枚举上的switch相比,例外情况较慢
  4. 这是不直观和明显的错误
  5. 维护代码的人会讨厌你:)

答案 1 :(得分:1)

可以造成问题吗?简单的答案是它已经是一个。如果你的代码每次都抛出一个Exception,那么为什么不完全摆脱try - catch呢?我非常怀疑你的代码在try块中做了什么不能以任何其他方式构造。正如@ user16547所提到的,例外应该是例外。它们不是用作应用程序逻辑的组成部分,也不是变态goto。具体原因这样做:

  • 投掷Exception代价很高,如果这是性能关键代码,您将严重损害您的应用程序。

  • 这会伤害可读性,因为大多数人都不希望您的代码以这种方式构建。

  • 捕获常规Exception类通常是一个坏主意,因为这只会进一步模糊代码,并掩盖其他潜在错误。请考虑您的代码的某些部分在try块中未能达到预期。它仍然会恢复到捕获状态,并可能导致整个应用程序崩溃!

如果没有看到您的实际代码,很难确定您所做的事情是否合理。但是,作为一般规则,这不是一种好的做法,并且不利于性能,可读性和可靠性。