【问题标题】:java.lang.IndexOutOfBoundsException in javajava中的java.lang.IndexOutOfBoundsException
【发布时间】:2020-03-29 09:04:27
【问题描述】:

我有下面的 java 类,我试图从 CSV 文件导入数据并插入到 oracle 数据库表中..

当我尝试运行此 java 类时,我收到错误为“java.lang.IndexOutOfBoundsException”。我只是尝试使用log.info("Insert values to table" +sql);查看插入语句,我可以看到生成了一些插入语句,然后它抛出了一个错误。

我对 java 很陌生,所以不知道如何处理这个异常。

下面是我的代码:

【问题讨论】:

    标签: java eclipse oracle jdbctemplate csv-import


    【解决方案1】:

    我不确定是哪一行导致了错误 - 您能否包括行号或堆栈跟踪?然而,这让我很担心:

    for (int i = 0; i < headings.size(); i++) {
                    String columnName = headings.get(i);
                    String value = columns.get(i); // <- this
    

    您正在使用iheadings.size() 进行迭代,但是如果headings.size() 大于columns.size() 怎么办?然后您的程序将尝试访问不存在的columns 索引,这会给您一个IndexOutOfBounds 异常。

    【讨论】:

    • 你能告诉我怎么做吗?如何放置堆栈跟踪?
    • 你能复制/粘贴消息(修改你的问题,很好地格式化它)你的编译器在你尝试运行程序时给你的消息吗?尝试运行代码时显示“java.lang.IndexOutOfBoundsException”的部分。
    • 我已格式化代码并将日志消息放入您提到的 for 循环中...在此值失败后...值:Mandamus Capital Limited,都柏林 2 ...我添加了完整的错误现在编码
    • @Andrew 我不确定这意味着什么。我建议您从头开始,一次一小步,而不是在我们进行时修复每个错误。这似乎是一项相对复杂的任务,会给任何人带来一些麻烦,更不用说 Java 新手了。
    • 实际上我认为这并不复杂,因为我可能需要更正 for 循环或某些索引值,因为错误表明一切
    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 2013-08-29
    • 1970-01-01
    • 2012-10-23
    • 2012-05-09
    • 2014-01-20
    • 2014-02-17
    相关资源
    最近更新 更多