未捕获异常

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

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

try {
            ExecutorService threadPool = Executors.newFixedThreadPool(size);

            for(int i = 0; i < size; i++) {
                DataController workerThread = new DataController(i, resultsList);

                threadPool.execute(workerThread);
            }

            threadPool.shutdown();
            boolean isTerminated = threadPool.awaitTermination(60, TimeUnit.SECONDS);

            System.out.println("isTerminated::"+ isTerminated);

        }catch (Exception e) {
            e.printStackTrace();
        }

class DataController implements Runnable {

    private int i;
    private List<String>[] resultsList;

    public DataController(int i, List<String>[] resultsList) {
        this.i = i;
        this.resultsList = resultsList;
    }

    @Override
    public void run() {
        List<String> a = new ArrayList<>();
        a.add(String.valueOf(i));

        if(i==2) {
            i = 2/0;
        }

        this.resultsList[this.i] = a;
    }

}

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

暂无答案!

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

相关问题