我正在開發一個JSON異常HTTP響應構建器,它基於在SQL Server Management Studio中執行選擇查詢的錯誤消息。我有一個try/catch塊,在try中發生select查詢執行,並在catch中發生異常消息。如何從catch語句中的Java異常對象檢索多個SSMS查詢錯誤消息?
我的問題是,我的異常響應生成器當前只能從失敗的SSMS查詢中捕獲第一個錯誤消息。如果來自單個查詢的錯誤消息超過1個,它會在第一個查詢後忽略所有內容。我想改進異常響應構建器,以便在同一個響應中返回來自單個查詢執行的每個SSMS錯誤消息。所以如果我拼錯了單元測試中的兩個列名,我希望響應給我兩次「無效的列名」消息。有誰知道這是否可能?有沒有辦法迭代通過一個Exception對象並得到多個錯誤?不是單個錯誤的堆棧跟蹤,而是查詢中多個獨立錯誤的「sys.messages」錯誤消息「text」值?
我抓看起來是這樣的:
catch (Exception e) {
response = myresponse.exceptionResponse(e);
}
我不知道Exception對象是否包含來自單個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對象時找不到任何信息。任何建議將不勝感激!