什么是IllegalStateException?

Bor*_*iev 26 java illegalstateexception

我正在尝试使用以下Fastload API

连接等等是完美的.


我确切地知道它失败了

 ...........
 System.out.println(" Streaming " + dataFile);
 pstmtFld.setAsciiStream(1, dataStream, -1); // This line fails
 System.out.println("check the above line"); // This does not go to console
 ...........
Run Code Online (Sandbox Code Playgroud)

例外是

Exception in thread "main" java.lang.IllegalStateException: Sample failed.

[ODBC Teradata Driver] Invalid precision: cbColDef value out of range


这是我要上传的表格.这是一种.csv格式,当我通过记事本打开它时,它看起来像这样

1,9,Win
2,9,Winc
3,9,Wi
Run Code Online (Sandbox Code Playgroud)

为什么我会得到这个例外?我怎样才能改进它?据我所知,问题是pstmtFld.setAsciiStream(1, dataStream, -1);不能以某种方式接受数据集并抛出异常

Jon*_*eet 32

通常,IllegalStateException用于表示"在非法或不适当的时间调用了一种方法".然而,这看起来并不像它的特别典型的用途.

您链接的代码显示它可以在第259行的代码中抛出- 但只有在转储SQLException到标准输出之后.

我们无法从该异常中分辨出什么是错误的 - 更好的代码会将原始代码用作SQLException"原因"异常(或者只是让原始异常在堆栈中传播) - 但是您应该能够看到标准的更多细节输出.查看该信息,您应该能够看到导致异常的原因并进行修复.


小智 8

package com.concepttimes.java;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class IllegalStateExceptionDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        List al = new ArrayList();
        al.add("Sachin");
        al.add("Rahul");
        al.add("saurav");
        Iterator itr = al.iterator();  
        while (itr.hasNext()) {           
            itr.remove();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

IllegalStateException表示在错误的时间调用了该方法.在下面的例子中,我们可以看到.在while循环中使用元素的同时调用remove()方法.

有关详细信息,请参阅以下链接. http://www.elitmuszone.com/elitmus/illegalstateexception-in-java/

  • 尼克你错了!上面的答案实际上使我朝着正确的方向解决我的代码中的类似问题。您不应仅因为它们涉及旧问题而拒绝投票。这是最不合适的做法,并且不鼓励新的SO用户使用。 (6认同)
  • 欢迎来到SO。这是一个非常老的问题的答案,这个问题已经被接受并被高度评价。我不太清楚您的代码与该问题的关系。请参阅https://stackoverflow.com/help/how-to-answer以获得指导。 (2认同)

Ram*_*pta 7

非法状态异常是未经检查的异常.

它表明该方法已在错误的时间调用.

例:

Thread t = new Thread();
t.start();
//
//
t.start();
Run Code Online (Sandbox Code Playgroud)

输出:

Runtime Excpetion: IllegalThreadStateException
Run Code Online (Sandbox Code Playgroud)

我们无法再次启动Thread,它将抛出IllegalStateException.