线程异常打印方法移入工具类

This commit is contained in:
RuoYi
2019-03-15 19:02:28 +08:00
parent 00a661e325
commit e26b65459e
2 changed files with 40 additions and 40 deletions

View File

@ -1,6 +1,9 @@
package com.ruoyi.common.utils;
import java.util.concurrent.CancellationException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -12,7 +15,7 @@ import org.slf4j.LoggerFactory;
*/
public class Threads
{
private static final Logger logger = LoggerFactory.getLogger("sys-user");
private static final Logger logger = LoggerFactory.getLogger(Threads.class);
/**
* sleep等待,单位为毫秒
@ -59,4 +62,38 @@ public class Threads
}
}
}
/**
* 打印线程异常信息
*/
public static void printException(Runnable r, Throwable t)
{
if (t == null && r instanceof Future<?>)
{
try
{
Future<?> future = (Future<?>) r;
if (future.isDone())
{
future.get();
}
}
catch (CancellationException ce)
{
t = ce;
}
catch (ExecutionException ee)
{
t = ee.getCause();
}
catch (InterruptedException ie)
{
Thread.currentThread().interrupt();
}
}
if (t != null)
{
logger.error(t.getMessage(), t);
}
}
}