2017-02-27 7 views
1

SQL Server Management Studioで選択クエリを実行したときのエラーメッセージに基づいて、JSON Exception HTTP応答ビルダを開発しています。私は試しに起こっている選択クエリの実行とキャッチで起こっている例外メッセージでレスポンスをビルドするtry/catchブロックを持っています。catchステートメントのJava Exceptionオブジェクトから複数のSSMSクエリエラーメッセージを取得するにはどうすればよいですか?

私の例外応答ビルダーは、現在、失敗したSSMSクエリからの最初のエラーメッセージのみを取り込むことができます。 1つのクエリから1つ以上のエラーメッセージがある場合は、最初のもの以降のすべてを無視します。私は例外応答ビルダーを改良して、同じ応答の単一のクエリ実行からすべてのSSMSエラーメッセージを返すようにしたいと思います。したがって、ユニットテストで2つの列名が間違っている場合は、「無効な列名」メッセージを2回入力してください。これが可能なら誰でも知っていますか? Exceptionオブジェクトを反復処理して複数のエラーを取得する方法はありますか?単一エラーのスタックトレースではなく、クエリからの複数の独立したエラーの "sys.messages"エラーメッセージ 'text'値のみですか?私はExceptionオブジェクトは、単一のSSMSのクエリから複数のエラーメッセージのインスタンスが含まれているか、それだけで最初のものを開催すると、おそらくこれがあればかどうかわからない

catch (Exception e) { 
     response = myresponse.exceptionResponse(e); 
    } 

私の漁獲量は、このようになります私の例外レスポンスビルダーが単一のエラーメッセージを返す理由。また、私の例外応答が構築されているコードは次のようになります。

public MyResponse exceptionResponse(Exception exception){ 
    JsonObjectBuilder response = Json.createObjectBuilder(); 
    if (exception != null) { 
     msg = exception.getMessage(); 
     if (msg == null) { 
     msg = NULL_EXCEPTION; 
    } 
} 
response.add("response", msg); 
response.add("id",Integer.toString(counter++)); 
isError = true; 
responseArray.add(response); 
return this; 

} `

例外を反復処理する方法がSQLExceptionのでありますように、私は間違いなくそれを行うことができますが、私はすることができ、存在する場合Exceptionオブジェクトに対して反復処理に関する情報を見つけることはできません。どんなアドバイスも大歓迎です!

答えて

0

2つの列名のスペルを間違えた場合、SQL Serverは最初の列名のスペルが間違っているメッセージを1つだけ返します。私は、ある時点で発生するエラーは1つだけであるため、発生するすべてのエラーをキャッチすることは不可能であると考えています。クエリで何か問題があると判断した場合、SQL Serverはクエリの実行を継続しようとしません。

関連する問題