模块 jmc.utils
程序包 com.jmc.lang

类 Tries

java.lang.Object
com.jmc.lang.Tries

public class Tries extends Object
try增强类
从以下版本开始:
1.0
  • 方法详细资料

    • tryThis

      public static void tryThis(Tries.RunnableThrowsE r)
      执行需要被try包含的代码块,直接抛出运行时异常
      参数:
      r - 代码块
      API Note:
      
       // 让当前线程睡眠3ms,并直接抛出运行时异常(无需捕获)
       Tries.tryThis(() -> Thread.sleep(3));
       
    • tryHandlesE

      public static void tryHandlesE(Tries.RunnableThrowsE r, Consumer<Throwable> exceptionHandler)
      执行需要被try包含的代码块并处理异常
      参数:
      r - 代码块
      exceptionHandler - 异常处理器
      从以下版本开始:
      1.5
      API Note:
      
       // 让当前线程睡眠3ms,并处理异常(进行打印)
       Tries.tryHandlesE(() -> Thread.sleep(3), Throwable::printStackTrace);
       
    • tryReturnsE

      public static Optional<Throwable> tryReturnsE(Tries.RunnableThrowsE r)
      执行需要被try包含的代码块并返回异常
      参数:
      r - 代码块
      返回:
      异常对象
      从以下版本开始:
      2.4
      API Note:
      
       // 让当前线程睡眠3ms,并返回异常
       var optionalE = Tries.tryHandlesE(() -> Thread.sleep(3));
       // 处理异常(进行打印)
       optionalE.ifPresent(Throwable::printStackTrace);
       
    • tryReturnsT

      public static <T> T tryReturnsT(Tries.ReturnedThrowable<T> c)
      执行需要被try包含的代码块并返回结果,直接抛出运行时异常
      类型参数:
      T - 返回结果类型
      参数:
      c - 代码块
      返回:
      结果
      API Note:
      
       // 获取String的Class对象,直接抛出运行时异常(无需捕获)
       var class = Tries.tryReturnsT(() -> Class.forName("java.lang.String"));
       
    • tryReturnsT

      public static <T, E extends Throwable> T tryReturnsT(Tries.ReturnedThrowable<T> c, Consumer<E> exceptionHandler)
      执行需要被try包含的代码块并返回结果和处理异常
      类型参数:
      T - 返回结果类型
      E - 异常类型
      参数:
      c - 代码块
      exceptionHandler - 异常处理器
      返回:
      结果
      从以下版本开始:
      1.5
      API Note:
      
       // 获取String的Class对象,如果有异常直接打印出来
       var class = Tries.tryReturnsT(
               () -> Class.forName("java.lang.String"),
               Throwable::printStackTrace
       );
       
    • throwsE

      public static <T> Consumer<T> throwsE(Tries.ConsumerThrowsE<T> c)
      把抛出异常的Consumer转化为普通的Consumer,并直接抛出运行时异常
      类型参数:
      T - 被消耗的对象
      参数:
      c - 抛出异常的Consumer
      返回:
      普通的Consumer
      从以下版本开始:
      1.5
      API Note:
      
       // 定义3个线程,启动并阻塞等待结束
       Stream.generate(() -> (Runnable) () -> System.out.println(666))
             .limit(3)
             .map(Thread::new)
             .peek(Thread::start)
             // 简写抛出Stream中的异常
             .forEach(Tries.throwsE(Thread::join));