因为多线程异常不能被正常try/cath捕获,所以需要另外处理,大家可以搜搜多线程和单线程异常的区别
创建方法
@Component
public class FutureTest(){
@Async //开始异步注解
public Future<Boolean> test(){ //返回值类型
int a=10/0; //有异常就返回异常,没异常返回结果
return new AsyncResult<>(true);
}
}
调用
import java.util.concurrent.Future;
@Service
public class TestDemo {
@Autowired
private FutureTest futureTest;
public Boolean test(){
try {
Future<Boolean> order = futureTest.test();
Boolean seccess = order.get(); //获取返回值
if(seccess)
return true;
} catch (Exception e) { //捕获到异常
e.printStackTrace();
return false;
}
return false;
}
}
这只是我在网上找到的简单的处理方式,小白一枚,有更好的方法欢迎分享