未捕获异常

yc0p9oo0  于 2021-09-13  发布在  Java
关注(0)|答案(0)|浏览(312)

我有一个springboot应用程序,它会收到大量请求。在我的应用程序中,它一次都没有响应。当我检查服务器日志以确定问题时,没有任何内存或任何其他问题。但我看到有一些 java.lang.ArrayIndexOutOfBoundsException 记录。当检查相关代码时,这是一个线程抛出的,它没有被处理。
示例如下(这不是原始代码),

  1. try {
  2. ExecutorService threadPool = Executors.newFixedThreadPool(size);
  3. for(int i = 0; i < size; i++) {
  4. DataController workerThread = new DataController(i, resultsList);
  5. threadPool.execute(workerThread);
  6. }
  7. threadPool.shutdown();
  8. boolean isTerminated = threadPool.awaitTermination(60, TimeUnit.SECONDS);
  9. System.out.println("isTerminated::"+ isTerminated);
  10. }catch (Exception e) {
  11. e.printStackTrace();
  12. }
  13. class DataController implements Runnable {
  14. private int i;
  15. private List<String>[] resultsList;
  16. public DataController(int i, List<String>[] resultsList) {
  17. this.i = i;
  18. this.resultsList = resultsList;
  19. }
  20. @Override
  21. public void run() {
  22. List<String> a = new ArrayList<>();
  23. a.add(String.valueOf(i));
  24. if(i==2) {
  25. i = 2/0;
  26. }
  27. this.resultsList[this.i] = a;
  28. }
  29. }

我的问题是,如果在executorservice线程中有任何异常抛出,是否会发生任何性能问题?如果发生这种情况,那么添加try-catch就足够了吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题