Class Exceptions

java.lang.Object
ch.raffael.meldioc.util.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

    Modifier and Type Method Description
    static java.lang.Throwable accumulate​(io.vavr.control.Option<java.lang.Throwable> current, java.lang.Throwable exception)
    Deprecated.
    static <T> io.vavr.control.Try<T> accumulate​(io.vavr.control.Try<T> t, java.lang.Throwable exception)  
    static java.lang.Throwable accumulate​(java.lang.Throwable current, 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 Details

    • 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
      T2 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
      T2 extends java.lang.Throwable
      T3 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
      T2 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
      T2 extends java.lang.Throwable
      T3 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
      T2 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
      T2 extends java.lang.Throwable
      T3 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

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

      public static java.lang.Throwable accumulate​(@Nullable 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)
    • autoClose

      public static <E extends java.lang.Exception> Exceptions.AutoCloser<E> autoClose​(Exceptions.AutoCloser<E> autoCloser)