什么是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 ........... 

例外是

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 

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

通常, IllegalStateException用于指示“在非法或不适当的时间调用了一个方法”。 然而,这看起来并不像它的特别典型的用途。

您链接的代码显示它可以在第259行的代码中抛出 – 但仅在将SQLException转储到标准输出之后。

我们无法从该exception中分辨出什么是错的 – 更好的代码会将原始的SQLException用作“原因”exception(或者只是让原始exception在堆栈中传播) – 但是你应该能够看到更多关于标准输出。 查看该信息,您应该能够看到导致exception的原因并进行修复。

非法状态exception是未经检查的exception。

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

例:

 Thread t = new Thread(); t.start(); // // t.start(); 

输出:

 Runtime Excpetion: IllegalThreadStateException 

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

 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(); } } } 

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

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