web-dev-qa-db-ja.com

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);が何らかの形でデータセットを受け入れず、例外をスローすることです

24
Borat Sagddiev

通常、 IllegalStateException は、「メソッドが不正または不適切な時間に呼び出されたこと」を示すために使用されます。ただし、これは特に一般的な使用方法ではありません。

リンクしたコードは、259行目でそのコード内がスローできることを示していますが、SQLExceptionを標準出力にダンプした後にのみです。

その例外だけでは何が間違っているのかわかりません-より良いコードは元のSQLExceptionを「原因」例外として使用します(または元の例外をスタックに伝播させます)-の詳細を見ることができるはずです標準出力。その情報を見ると、例外の原因を確認して修正できるはずです。

31
Jon Skeet
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は、メソッドが間違ったタイミングで呼び出されたことを通知します。以下の例では、それを見ることができます。 remove()メソッドは、whileループで要素が使用されると同時に呼び出されます。

詳細については、以下のリンクを参照してください。 http://www.elitmuszone.com/elitmus/illegalstateexception-in-Java/

8
Kundan

Illegal State Exceptionは未チェックの例外です。

メソッドが間違った時間に呼び出されたことを示します。

例:

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

出力:

Runtime Excpetion: IllegalThreadStateException

スレッドを再び開始することはできません。IllegalStateExceptionがスローされます。

7
Raman Gupta