public final class VerboseRunnable extends Object implements Runnable
Runnable
, that logs all uncaught runtime exceptions.
You can use it with scheduled executor, for example:
Executors.newScheduledThreadPool(2).scheduleAtFixedRate( new VerboseRunnable(runnable, true), 1L, 1L, TimeUnit.SECONDS );
Now, every runtime exception that is not caught inside your
Runnable
will be reported to log (using Logger
).
Two-arguments constructor can be used when you need to instruct the class
about what to do with the exception: either swallow it or escalate.
Sometimes it's very important to swallow exceptions. Otherwise an entire
thread may get stuck (like in the example above).
This class is thread-safe.
VerboseThreads
Constructor and Description |
---|
VerboseRunnable(Callable<?> callable)
Default constructor, doesn't swallow exceptions.
|
VerboseRunnable(Callable<?> callable,
boolean swallow)
Default constructor, doesn't swallow exceptions.
|
VerboseRunnable(Callable<?> callable,
boolean swallow,
boolean vrbs)
Default constructor.
|
VerboseRunnable(Runnable runnable)
Default constructor, doesn't swallow exceptions.
|
VerboseRunnable(Runnable runnable,
boolean swallow)
Default constructor, with configurable behavior for exceptions.
|
VerboseRunnable(Runnable runnable,
boolean swallow,
boolean vrbs)
Default constructor, with fully configurable behavior.
|
public VerboseRunnable(Runnable runnable)
runnable
- Runnable to wrappublic VerboseRunnable(Callable<?> callable)
callable
- Callable to wrappublic VerboseRunnable(Callable<?> callable, boolean swallow)
public VerboseRunnable(Callable<?> callable, boolean swallow, boolean vrbs)
callable
- Callable to wrapswallow
- Shall we swallow exceptions
(TRUE
) or re-throw
(FALSE
)? Exception swallowing means that run()
will never throw any exceptions (in any case all exceptions are logged
using Logger
.vrbs
- Shall we report the entire
stacktrace of the exception
(TRUE
) or just its message in one line (FALSE
)public VerboseRunnable(Runnable runnable, boolean swallow)
public VerboseRunnable(Runnable runnable, boolean swallow, boolean vrbs)
runnable
- Runnable to wrapswallow
- Shall we swallow exceptions
(TRUE
) or re-throw
(FALSE
)? Exception swallowing means that run()
will never throw any exceptions (in any case all exceptions are logged
using Logger
.vrbs
- Shall we report the entire
stacktrace of the exception
(TRUE
) or just its message in one line (FALSE
)Copyright © 2012–2018 jcabi.com. All rights reserved.