Java 工程中的异常问题

Java 工程中的异常问题,java,exception,try-catch,Java,Exception,Try Catch,我正在编写程序,在编码的某一点上,我有一段代码,每次都会生成异常,我需要这样做 从另一个意义上说,我想使用catch块多于try块 我想知道这种编码会在应用程序中产生问题(在部署后的将来),因为总是会发生异常 它有害吗? try{ //throws exception every time } catch(Exception e) { //coding//Important part of code } 我还有其他的解决方案,但我想知道的是这种代码引起的问题 我同意这是错误的,但我的问题是,这

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

从另一个意义上说,我想使用catch块多于try

我想知道这种编码会在应用程序中产生问题(在部署后的将来),因为总是会发生异常

它有害吗?

try{
//throws exception every time
}
catch(Exception e)
{
//coding//Important part of code
}
我还有其他的解决方案,但我想知道的是这种代码引起的问题


我同意这是错误的,但我的问题是,这会造成什么问题???

你试图做的是无限错误的!!!由于您并没有发布任何详细信息,我将假设您正在抛出不同的异常,然后根据抛出的异常类型执行某些操作

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

只有在特殊情况下才应使用eCeption,因为:

  • 每个人都希望如此
  • 没有人会期望您的用例
  • 例如,与enum上的
    开关
    相比,异常速度较慢
  • 这是不直观的,显然是错误的
  • 维护您的代码的人会恨您:)

  • 这会造成问题吗?简单的答案是,它已经是一个。如果您的代码每次都抛出一个
    异常
    ,那么为什么不将
    try
    -
    catch
    一起去掉呢?我非常怀疑您的代码在try块中所做的事情不能以任何其他方式构造。正如@user16547所提到的,例外情况应该是例外的。它们不是设计用来作为应用程序逻辑的一个组成部分,也不是变态的
    goto
    。不这样做的具体原因:

    • 抛出
      异常
      代价高昂,如果这是性能关键的代码,则会严重损害应用程序

    • 这在很大程度上损害了可读性,因为大多数人不会期望您的代码以这种方式构造

    • 捕获general
      Exception
      类通常不是一个好主意,因为这只会进一步混淆代码,并掩盖其他潜在错误。考虑到代码中的某些部分在<>代码>尝试< <代码>块中失败,这是您没有想到的。它仍然会恢复到捕获状态,并可能导致整个应用程序崩溃


    如果看不到您的实际代码,就很难确定您所做的是否合理。但是,一般来说,这不是一种好的做法,对性能、可读性和可靠性都有害。

    我不明白为什么每次都要编写生成异常的代码。异常应该是异常的。我真的看不出这样做的意义…你能给我们看一段代码,你想如何使用它吗?也许这样,somone会帮助您降低性能,使代码无法读取和维护,即使它现在可以工作,将来修改/维护代码将非常困难,成本也会很高,将来可能会导致意外的错误等等。此外,如果您的公司有某种形式的代码审查,它将永远不会通过:)