2017-02-27 5 views
1

SQL Server Management Studio에서 선택 쿼리를 실행할 때 발생하는 오류 메시지를 기반으로 JSON Exception HTTP 응답 작성기를 개발 중입니다. try/catch 블록에서 select 쿼리 실행을 시도하고 catch에서 예외 메시지가 발생하면서 응답을 빌드합니다.catch 문에서 Java Exception 객체로부터 여러 SSMS 쿼리 오류 메시지를 어떻게 검색합니까?

내 예외 응답 작성기는 현재 실패한 SSMS 쿼리의 첫 번째 오류 메시지 만 캡처 할 수 있습니다. 단일 쿼리에서 하나 이상의 오류 메시지가있는 경우 첫 번째 메시지 이후의 모든 메시지를 무시합니다. 예외 응답 작성기를 개선하여 동일한 응답의 단일 쿼리 실행에서 모든 SSMS 오류 메시지를 반환하고 싶습니다. 따라서 단위 테스트에서 두 개의 열 이름을 잘못 입력하면 '잘못된 열 이름'메시지가 두 번 표시됩니다. 이것이 가능한지 아는 사람 있습니까? Exception 객체를 통해 반복하고 여러 오류가 발생하는 방법이 있습니까? 단일 오류에 대한 스택 추적이 아니라 쿼리의 여러 독립 오류에 대한 "sys.messages"오류 메시지 'text'값만 있습니까?

내 캐치는 다음과 같습니다

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

나는 예외 객체가 하나의 SSMS 쿼리에서 여러 오류 메시지 인스턴스를 포함하는, 또는 단지 첫 번째를 개최한다면 어쩌면 이것은을인지 확실하지 않다 내 예외 응답 빌더가 단일 오류 메시지 만 리턴하는 이유. 또한 내 예외 응답이 내장 된 코드는 다음과 같습니다

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

두 개의 열 이름을 잘못 입력하면 SQL Server는 첫 번째 열 이름의 철자가 틀린 메시지 하나만 반환합니다. 나는 주어진 시간에 일어나는 하나의 오류 만 있기 때문에 일어나는 모든 오류를 잡는 것이 불가능하다고 믿는다. 쿼리에 문제가 있다고 판단되면 SQL Server는 쿼리 실행을 계속 진행하지 않습니다.