Class Exceptions


  • public final class Exceptions
    extends java.lang.Object
    Some utilities for dealing with exceptions. All these methods make sure that fatal exceptions are always rethrown immediately.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  Exceptions.AutoCloser<E extends java.lang.Exception>  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.Throwable accumulate​(io.vavr.control.Option<java.lang.Throwable> current, java.lang.Throwable exception)  
      static <T> io.vavr.control.Try<T> accumulate​(io.vavr.control.Try<T> t, java.lang.Throwable exception)  
      static IllegalFlow alwaysRethrow​(java.lang.Throwable exception)  
      static <T extends java.lang.Throwable>
      IllegalFlow
      alwaysRethrow​(java.lang.Throwable exception, java.lang.Class<T> t)  
      static <T extends java.lang.Throwable>
      IllegalFlow
      alwaysRethrow​(java.lang.Throwable exception, java.lang.Class<T> t, java.util.function.Function<? super java.lang.Throwable,​? extends T> wrapper)  
      static <T1 extends java.lang.Throwable,​T2 extends java.lang.Throwable>
      IllegalFlow
      alwaysRethrow​(java.lang.Throwable exception, java.lang.Class<T1> t1, java.lang.Class<T2> t2)  
      static <T1 extends java.lang.Throwable,​T2 extends java.lang.Throwable,​T3 extends java.lang.Throwable>
      IllegalFlow
      alwaysRethrow​(java.lang.Throwable exception, java.lang.Class<T1> t1, java.lang.Class<T2> t2, java.lang.Class<T3> t3)  
      static <T1 extends java.lang.Throwable,​T2 extends java.lang.Throwable,​T3 extends java.lang.Throwable>
      IllegalFlow
      alwaysRethrow​(java.lang.Throwable exception, java.lang.Class<T1> t1, java.lang.Class<T2> t2, java.lang.Class<T3> t3, java.util.function.Function<? super java.lang.Throwable,​? extends T1> wrapper)  
      static <T1 extends java.lang.Throwable,​T2 extends java.lang.Throwable>
      IllegalFlow
      alwaysRethrow​(java.lang.Throwable exception, java.lang.Class<T1> t1, java.lang.Class<T2> t2, java.util.function.Function<? super java.lang.Throwable,​? extends T1> wrapper)  
      static <E extends java.lang.Exception>
      Exceptions.AutoCloser<E>
      autoClose​(Exceptions.AutoCloser<E> autoCloser)  
      static boolean isFatal​(java.lang.Throwable exception)
      VirtualMachineError and LinkageError are considered fatal exceptions that no sane program should try to handle.
      static <E extends java.lang.Throwable,​T extends java.lang.Throwable>
      E
      rethrowIfChecked​(E exception, java.lang.Class<T> t)  
      static <E extends java.lang.Throwable,​T1 extends java.lang.Throwable,​T2 extends java.lang.Throwable>
      E
      rethrowIfChecked​(E exception, java.lang.Class<T1> t1, java.lang.Class<T2> t2)  
      static <E extends java.lang.Throwable,​T1 extends java.lang.Throwable,​T2 extends java.lang.Throwable,​T3 extends java.lang.Throwable>
      E
      rethrowIfChecked​(E exception, java.lang.Class<T1> t1, java.lang.Class<T2> t2, java.lang.Class<T3> t3)  
      static <E extends java.lang.Throwable>
      E
      rethrowIfFatal​(E exception)  
      static <E extends java.lang.Throwable>
      E
      rethrowIfFatal​(E exception, java.lang.Throwable previous)  
      static <E extends java.lang.Throwable>
      E
      rethrowIfUnchecked​(E exception)  
      static java.lang.String toString​(java.lang.Throwable e)  
      static java.lang.String toString​(java.lang.Throwable e, boolean stackTrace)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • isFatal

        public static boolean isFatal​(java.lang.Throwable exception)
        VirtualMachineError and LinkageError are considered fatal exceptions that no sane program should try to handle. The best reaction to these exceptions is to crash miserably.
      • rethrowIfFatal

        public static <E extends java.lang.Throwable> E rethrowIfFatal​(E exception)
      • rethrowIfFatal

        public static <E extends java.lang.Throwable> E rethrowIfFatal​(E exception,
                                                                       @Nullable
                                                                       java.lang.Throwable previous)
      • rethrowIfChecked

        public static <E extends java.lang.Throwable,​T extends java.lang.Throwable> E rethrowIfChecked​(E exception,
                                                                                                             java.lang.Class<T> t)
                                                                                                      throws T extends java.lang.Throwable
        Throws:
        T extends java.lang.Throwable
      • rethrowIfChecked

        public static <E extends java.lang.Throwable,​T1 extends java.lang.Throwable,​T2 extends java.lang.Throwable> E rethrowIfChecked​(E exception,
                                                                                                                                                   java.lang.Class<T1> t1,
                                                                                                                                                   java.lang.Class<T2> t2)
                                                                                                                                            throws T1 extends java.lang.Throwable,
                                                                                                                                                   T2 extends java.lang.Throwable
        Throws:
        T1 extends java.lang.Throwable
      • rethrowIfChecked

        public static <E extends java.lang.Throwable,​T1 extends java.lang.Throwable,​T2 extends java.lang.Throwable,​T3 extends java.lang.Throwable> E rethrowIfChecked​(E exception,
                                                                                                                                                                                        java.lang.Class<T1> t1,
                                                                                                                                                                                        java.lang.Class<T2> t2,
                                                                                                                                                                                        java.lang.Class<T3> t3)
                                                                                                                                                                                 throws T1 extends java.lang.Throwable,
                                                                                                                                                                                        T2 extends java.lang.Throwable,
                                                                                                                                                                                        T3 extends java.lang.Throwable
        Throws:
        T1 extends java.lang.Throwable
      • rethrowIfUnchecked

        public static <E extends java.lang.Throwable> E rethrowIfUnchecked​(E exception)
                                                                    throws java.lang.RuntimeException,
                                                                           java.lang.Error
        Throws:
        java.lang.RuntimeException
        java.lang.Error
      • alwaysRethrow

        public static IllegalFlow alwaysRethrow​(java.lang.Throwable exception)
      • alwaysRethrow

        public static <T extends java.lang.Throwable> IllegalFlow alwaysRethrow​(java.lang.Throwable exception,
                                                                                java.lang.Class<T> t)
                                                                         throws T extends java.lang.Throwable
        Throws:
        T extends java.lang.Throwable
      • alwaysRethrow

        public static <T1 extends java.lang.Throwable,​T2 extends java.lang.Throwable> IllegalFlow alwaysRethrow​(java.lang.Throwable exception,
                                                                                                                      java.lang.Class<T1> t1,
                                                                                                                      java.lang.Class<T2> t2)
                                                                                                               throws T1 extends java.lang.Throwable,
                                                                                                                      T2 extends java.lang.Throwable
        Throws:
        T1 extends java.lang.Throwable
      • alwaysRethrow

        public static <T1 extends java.lang.Throwable,​T2 extends java.lang.Throwable,​T3 extends java.lang.Throwable> IllegalFlow alwaysRethrow​(java.lang.Throwable exception,
                                                                                                                                                           java.lang.Class<T1> t1,
                                                                                                                                                           java.lang.Class<T2> t2,
                                                                                                                                                           java.lang.Class<T3> t3)
                                                                                                                                                    throws T1 extends java.lang.Throwable,
                                                                                                                                                           T2 extends java.lang.Throwable,
                                                                                                                                                           T3 extends java.lang.Throwable
        Throws:
        T1 extends java.lang.Throwable
      • alwaysRethrow

        public static <T extends java.lang.Throwable> IllegalFlow alwaysRethrow​(java.lang.Throwable exception,
                                                                                java.lang.Class<T> t,
                                                                                java.util.function.Function<? super java.lang.Throwable,​? extends T> wrapper)
                                                                         throws T extends java.lang.Throwable
        Throws:
        T extends java.lang.Throwable
      • alwaysRethrow

        public static <T1 extends java.lang.Throwable,​T2 extends java.lang.Throwable> IllegalFlow alwaysRethrow​(java.lang.Throwable exception,
                                                                                                                      java.lang.Class<T1> t1,
                                                                                                                      java.lang.Class<T2> t2,
                                                                                                                      java.util.function.Function<? super java.lang.Throwable,​? extends T1> wrapper)
                                                                                                               throws T1 extends java.lang.Throwable,
                                                                                                                      T2 extends java.lang.Throwable
        Throws:
        T1 extends java.lang.Throwable
      • alwaysRethrow

        public static <T1 extends java.lang.Throwable,​T2 extends java.lang.Throwable,​T3 extends java.lang.Throwable> IllegalFlow alwaysRethrow​(java.lang.Throwable exception,
                                                                                                                                                           java.lang.Class<T1> t1,
                                                                                                                                                           java.lang.Class<T2> t2,
                                                                                                                                                           java.lang.Class<T3> t3,
                                                                                                                                                           java.util.function.Function<? super java.lang.Throwable,​? extends T1> wrapper)
                                                                                                                                                    throws T1 extends java.lang.Throwable,
                                                                                                                                                           T2 extends java.lang.Throwable,
                                                                                                                                                           T3 extends java.lang.Throwable
        Throws:
        T1 extends java.lang.Throwable
      • toString

        public static java.lang.String toString​(java.lang.Throwable e)
      • toString

        public static java.lang.String toString​(java.lang.Throwable e,
                                                boolean stackTrace)
      • accumulate

        public static java.lang.Throwable accumulate​(io.vavr.control.Option<java.lang.Throwable> current,
                                                     java.lang.Throwable exception)
      • accumulate

        public static <T> io.vavr.control.Try<T> accumulate​(io.vavr.control.Try<T> t,
                                                            java.lang.Throwable exception)