Package com.jcabi.log

Class VerboseCallable<T>

  • Type Parameters:
    T - Type of result
    All Implemented Interfaces:
    Callable<T>

    public final class VerboseCallable<T>
    extends Object
    implements Callable<T>
    Wrapper of 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.

    Since:
    0.16
    See Also:
    VerboseThreads
    • Constructor Detail

      • VerboseCallable

        public VerboseCallable​(Callable<T> callable)
        Default constructor, doesn't swallow exceptions.
        Parameters:
        callable - Callable to wrap
      • VerboseCallable

        public VerboseCallable​(Callable<T> callable,
                               boolean swallow)
        Default constructor, doesn't swallow exceptions.
        Parameters:
        callable - Callable to wrap
        swallow - 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.
      • VerboseCallable

        public VerboseCallable​(Runnable runnable,
                               boolean swallow,
                               boolean vrbs)
        Default constructor.
        Parameters:
        runnable - Runnable to wrap
        swallow - 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)
      • VerboseCallable

        public VerboseCallable​(Runnable runnable,
                               boolean swallow)
        Default constructor, with configurable behavior for exceptions.
        Parameters:
        runnable - Runnable to wrap
        swallow - 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.
      • VerboseCallable

        public VerboseCallable​(Callable<T> callable,
                               boolean swallow,
                               boolean vrbs)
        Default constructor, with fully configurable behavior.
        Parameters:
        callable - Runnable to wrap
        swallow - 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)