public final class VerboseCallable<T> extends Object implements Callable<T>
Callable
, that logs all uncaught runtime exceptions.
You can use it with scheduled executor, for example:
Executors.newFixedThreadPool(1).submit( new VerboseCallable(callable, true) );
Now, every runtime exception that is not caught inside your
Callable
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 |
---|
VerboseCallable(Callable<T> callable)
Default constructor, doesn't swallow exceptions.
|
VerboseCallable(Callable<T> callable,
boolean swallow)
Default constructor, doesn't swallow exceptions.
|
VerboseCallable(Callable<T> callable,
boolean swallow,
boolean vrbs)
Default constructor, with fully configurable behavior.
|
VerboseCallable(Runnable runnable,
boolean swallow)
Default constructor, with configurable behavior for exceptions.
|
VerboseCallable(Runnable runnable,
boolean swallow,
boolean vrbs)
Default constructor.
|
public VerboseCallable(Callable<T> callable)
callable
- Callable to wrappublic VerboseCallable(Callable<T> callable, boolean swallow)
public VerboseCallable(Runnable runnable, boolean swallow, boolean vrbs)
runnable
- Runnable to wrapswallow
- Shall we swallow exceptions
(TRUE
) or re-throw
(FALSE
)? Exception swallowing means that call()
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 VerboseCallable(Runnable runnable, boolean swallow)
public VerboseCallable(Callable<T> callable, boolean swallow, boolean vrbs)
callable
- Runnable to wrapswallow
- Shall we swallow exceptions
(TRUE
) or re-throw
(FALSE
)? Exception swallowing means that call()
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–2016 jcabi.com. All rights reserved.