Tag: try catch

Try-catch:这是可接受的做法吗?

我们收到了软件供应商提供的Java代码。 它包含很多try-catch块, catch部分没有任何内容。 他们到处都是。 例: try { spaceBlock.enable(LindsayModel); } catch (Exception e) { } 我的问题是:上述可接受的做法是否合适? 如果是的话,何时? 或者我应该继续删除所有这些“虚假” try和catch语句? 对我而言,这看起来像是一种可怕的做法,但我在Java中没有足够的经验来确定。 如果你不打算对它们做任何事情,为什么要抓错? 在我看来,如果您确信exception绝对没有任何后果,并且您不关心是否发生exception,那么您只会这样做。 但是,在我们的特定应用中并非如此。 编辑提供一些背景信息:我们从供应商那里购买了一个Java脚本产品。 除产品外,他们还根据我们的需求提供了大量的概念validation脚本。 这个脚本“免费”(虽然我们不会购买产品,如果它没有附带脚本),它“工作”。 但是这个脚本是一个真正的痛苦,因为很多东西,即使我作为一个Java新手认为是可怕的做法,一个例子是这个虚假的尝试捕获业务。

使用注释进行exception处理?

假设我有一种抛出某种exception的方法。 抛出exception的代码位于访问外部服务的第三方库中。 我有一些类可以与外部服务进行大量的工作,并且在整个过程中有很多exception处理来处理潜在的问题。 我遇到的问题是我可能有很多例外,但我可能只需要执行一些操作,如果有的话,并且有大量的try / catch块。 exception的类型甚至可能不相关,或者不同的方法可能抛出相同类型的exception,但是根据抛出它的方法需要采取不同的操作。 我正在寻找的是一个可以取代try / catch的注释,并简单地指示当该方法中存在exception时要采取的行为。 我知道Spring ApsectJ可以做到这一点,但我现在无法轻松添加任何新的依赖项或修改pom来调整现有的依赖项。 因此,我希望通过自定义注释可以实现这一点。 例如: @Catcher(action=SomeEnum.SOME_ACTION) public void doSomething(ServiceObj obj) throws SomeException { ExternalService.makeThingsHappen(obj); } 当然,我会假设一个单独的类会处理exception。 另一个困难是我需要传递的ServiceObj。 如果makeThingsHappen()失败,我可能需要obj来执行其他操作。 action变量将告诉处理程序类如何处理obj。 这可以在没有严重粪便的情况下完成,还是我希望有可能不存在的东西?

Java:我如何编写try-catch-repeat块?

我知道这样做的反制方法。 我想知道是否有一个很好的,紧凑的方式来做到这一点。

exception处理尝试捕获内部catch

我最近遇到了一个程序员编写的代码,他在catch中有一个try-catch语句! 请原谅我无法粘贴实际代码,但他所做的与此类似: try { //ABC Operation } catch (ArgumentException ae) { try { //XYZ Operation } catch (IndexOutOfRangeException ioe) { //Something } } 我个人觉得这是我见过的最差的代码! 在1到10的范围内,你认为我应该多久去给他一点心思,还是我过度反应? 编辑:他在捕获中实际做了什么,他正在执行一些操作,这些操作可以/应该在初始尝试失败时完成。 我的问题是拥有干净的代码和可维护性。 将第一个catch的exception委托给另一个函数或调用函数就可以了,但是添加更多代码可能会或者可能不会将exception抛入第一个catch,这是我觉得不好的。 我试图避免多个堆叠的“if-loop”语句,我发现这同样糟糕。

使用try-catch java

所以,进入java中try-catch语句的基础知识。 我仍然对语法中的一些差异感到困惑。 这是我试图分析和理解的代码。 另外,使用try then catch(Exception e)与说只是抛出…或者抛出new之间的区别是什么…从我的理解,try catch基本上是一种通过输出消息或传递来处理错误的方法另一种方法。 但是,我认为我坚持它的语法方面。 任何建设性的评论或简单的例子都是受欢迎的人。 关于这个概念的一些澄清以及我的书中的示例代码的内容将会受到赞赏。 /* Invalid radius class that contains error code */ public class InvalidRadiusException extends Exception { private double radius; /** Construct an exception */ public InvalidRadiusException(double radius) { super(“Invalid radius ” + radius); this.radius = radius; } /** Return the radius */ public double getRadius() […]

Stata是否有类似Java的“try and catch”机制?

我正在写一个.do来检查一些.dta文件中是否存在某些变量,以及检查这些变量是否存在某些值。 但是,我的代码在遇到无效的变量名时停止执行。 我知道我混合Java和Stata编码,这是完全不合适的,但有什么方法我可以做类似的事情: try { su var1 local var1_mean=(mean)var1 local var1_min=(min)var1 local var1_max=(max)var1 … } catch (NoSuchVariableException e) { System.out.println(“Var1 does not exist”) } // So that the code does not stop executing…?

try-catch为零除

我的问题是关于try-catch块的简单除法示例。 你看到第一行尝试? 如果我将这两个变量中的任何一个转换为double,则程序无法识别catch块。 在我看来,我是否必须执行捕获块。 这段代码出了什么问题? public static void main(String[] args) { int pay=8,payda=0; try { double result=pay/(double)payda; // if I cast any of the two variables, program does not recognize the catch block, why is it so? System.out.println(result); System.out.println(“inside-try”); } catch (Exception e) { System.out.println(“division by zero exception”); System.out.println(“inside-catch”); } }

为什么没有捕获“java.lang.OutOfMemoryError:Java堆空间”?

我在Java Web应用程序中有一个线程导致java.lang.OutOfMemoryError:Java堆空间exception,但try / catch块没有捕获错误。 示例代码: private void doSomeWork() { try { processData(); //Causes OutOfMemoryError System.out.println(“This line does not execute”); } catch (Exception e) { System.out.println(“Exception. This line does not execute.”); //Log error } finally { System.out.println(“finally. This line does execute”); System.out.println(“Thread name: ” + Thread.currentThread().getName()); } } 输出: 最后。 这一行确实执行 线程名称:_Worker-8 线程“_Worker-8”中的exceptionjava.lang.OutOfMemoryError:Java堆空间 … 背景: 我最近接手了这个Java项目,我正在努力加快Java和这个项目的速度。 […]

如何在Java中检查运行时是否存在某个方法?

如何检查Java中是否存在类的方法? try {…} catch {…}声明是不是很好的做法?

在构造函数中尝试/捕获 – 推荐的做法?

我一直很好奇的东西 public class FileDataValidator { private String[] lineData; public FileDataValidator(String[] lineData){ this.lineData = lineData; removeLeadingAndTrailingQuotes(); try { validateName(); validateAge(); validateTown(); } catch(InvalidFormatException e) { e.printStackTrace(); } } //validation methods below all throwing InvalidFormatException 不建议在我的构造函数中包含try / catch块吗? 我知道我可以让Constructor将Exception抛回给调用者。 你们在调用像我在构造函数中所做的那样的方法时,你们更喜欢什么? 在调用类中,您更喜欢创建FileDataValidator的实例并在该实例上调用那里的方法吗? 只是有兴趣听一些反馈!