I have the following code:
TestClass test=new TestClass(); test.setSomething1(0); //could, but probably won't throw Exception test.setSomething2(0); //could, but probably won't throw Exception
I would like to execute: test.setSomething2(0);
even if test.setSomething(0)
(the line above it) throws an exception. Is there a way to do this OTHER than:
try{ test.setSomething1(0); }catch(Exception e){ //ignore } try{ test.setSomething2(0); }catch(Exception e){ //ignore }
I have a lot of test.setSomething’s in a row and all of them could throw Exceptions. If they do, I just want to skip that line and move to the next one.
For clarification, I don’t care if it throws an Exception, and I can’t edit the source code of the code which throws this exception.
THIS IS A CASE WHERE I DON’T CARE ABOUT THE EXCEPTIONS (please don’t use universally quantified statements like “you should never ignore Exceptions”). I am setting the values of some Object. When I present the values to a user, I do null checks anyway, so it doesn’t actually matter if any of the lines of code execute.
Advertisement
Answer
There is no way to fundamentally ignore a thrown exception. The best that you can do is minimize the boilerplate you need to wrap the exception-throwing code in.
If you are on Java 8, you can use this:
public static void ignoringExc(RunnableExc r) { try { r.run(); } catch (Exception e) { } } @FunctionalInterface public interface RunnableExc { void run() throws Exception; }
Then, and implying static imports, your code becomes
ignoringExc(() -> test.setSomething1(0)); ignoringExc(() -> test.setSomething2(0));