java.lang.Object
com.jmc.lang.Tries
try增强类
- 从以下版本开始:
- 1.0
-
嵌套类概要
嵌套类修饰符和类型类说明static interface
可抛出异常的Consumerstatic interface
可抛出异常的带返回值的代码块接口static interface
可抛出异常的代码块接口 -
方法概要
修饰符和类型方法说明static <T> Consumer
<T> throwsE
(Tries.ConsumerThrowsE<T> c) 把抛出异常的Consumer转化为普通的Consumer,并直接抛出运行时异常static void
tryHandlesE
(Tries.RunnableThrowsE r, Consumer<Throwable> exceptionHandler) 执行需要被try包含的代码块并处理异常执行需要被try包含的代码块并返回异常static <T> T
执行需要被try包含的代码块并返回结果,直接抛出运行时异常static <T,
E extends Throwable>
TtryReturnsT
(Tries.ReturnedThrowable<T> c, Consumer<E> exceptionHandler) 执行需要被try包含的代码块并返回结果和处理异常static void
执行需要被try包含的代码块,直接抛出运行时异常
-
方法详细资料
-
tryThis
执行需要被try包含的代码块,直接抛出运行时异常- 参数:
r
- 代码块- API Note:
// 让当前线程睡眠3ms,并直接抛出运行时异常(无需捕获) Tries.tryThis(() -> Thread.sleep(3));
-
tryHandlesE
执行需要被try包含的代码块并处理异常- 参数:
r
- 代码块exceptionHandler
- 异常处理器- 从以下版本开始:
- 1.5
- API Note:
// 让当前线程睡眠3ms,并处理异常(进行打印) Tries.tryHandlesE(() -> Thread.sleep(3), Throwable::printStackTrace);
-
tryReturnsE
执行需要被try包含的代码块并返回异常- 参数:
r
- 代码块- 返回:
- 异常对象
- 从以下版本开始:
- 2.4
- API Note:
// 让当前线程睡眠3ms,并返回异常 var optionalE = Tries.tryHandlesE(() -> Thread.sleep(3)); // 处理异常(进行打印) optionalE.ifPresent(Throwable::printStackTrace);
-
tryReturnsT
执行需要被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
把抛出异常的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));
-