是否有可能在PL/SQL oracle存儲過程中拋出一個特定的錯誤消息,並在被調用時在Hibernate中捕獲它?在PLSQL中拋出特定的錯誤消息Oracle ...在冬眠中捕獲?
2
A
回答
5
您可以從PL/SQL代碼中拋出用戶定義的錯誤消息。 -20000到-20999之間的錯誤代碼保留給用戶指定的錯誤消息。
通過調用你的PL/SQL中的raise_application_error
功能做到這一點:
raise_application_error(-20001, 'Your error code message here');
這就像正常的Oracle錯誤傳播。
編輯:
我不是休眠的用戶,但我發現這一點的同時試圖尋找一個答案,我認爲這會導致你在正確的道路。
try
{
// some hibernate calls
}
catch (GenericJdbcException ge)
{
if(ge.getCause() != null && ge.getCause() instanceof SQLException)
{
SQLException se = (SQLException)ge.getCause();
// *****************************************************************
// NOTE: THIS will be where you check for your customer error code.
// *****************************************************************
if(se.getErrorCode() == -20001)
{
// your error handling for this case
}
else
{
throw ge; // do not swallow unhandled exceptions
}
}
else
{
throw ge // do not swallow unhandled exceptions
}
}
0
你可以在PL/SQL中使用輸出參數,並使用ParameterMode.OUT
挑輸出在代碼中創建或更換過程PROC(pls_out_put出數);
//調用輸出
query.registerStoredProcedureParameter("pls_out_put", Integer.class, ParameterMode.OUT);`
INT結果=(整數)query.getOutputParameterValue( 「pls_out_put」);
if (result==1){
message = new FacesMessage(FacesMessage.SEVERITY_INFO, "user defined message", "user defined message");
FacesContext.getCurrentInstance().addMessage(null, message);
} else if(result==0) {
message = new FacesMessage(FacesMessage.SEVERITY_INFO, "User defined message", "user defined message");
FacesContext.getCurrentInstance().addMessage(null, message);
}
相關問題
- 1. 冬眠restcall保存拋出錯誤
- 2. 在Python中捕獲特定的錯誤消息
- 3. 冬眠拋出MappingException
- 4. 錯誤在冬眠
- 5. Rails:在JavaScript中捕獲錯誤消息
- 6. 如何捕獲命令拋出的錯誤消息?
- 7. 在global.asax中捕獲特定錯誤
- 8. 在駱駝中拋出異常與自定義錯誤消息
- 9. 如何在Python中捕獲具有特定錯誤消息的異常?
- 10. Grunt正在拋出錯誤消息
- 11. 在java中捕獲xsl:消息輸出
- 12. 在PLSQL塊內部捕獲錯誤
- 13. 捕獲錯誤消息
- 14. 捕獲FTP錯誤消息
- 15. Oracle plsql捕獲異常
- 16. 冬眠奇怪的錯誤在諮詢
- 17. 在OpenFileDialog框中取消拋出錯誤
- 18. 如何捕獲在Vue.JS SPA中拋出的所有錯誤
- 19. 將validatescript中的錯誤捕獲到自定義錯誤消息中
- 20. RxJs沒有捕獲拋出的錯誤
- 21. 如何在JSP中捕獲和拋出錯誤
- 22. 在IE8中jQuery「異常拋出並未捕獲」錯誤
- 23. 冬眠懶真實錯誤
- 24. 冬眠HQL元素錯誤
- 25. 未捕獲的異常「拋出:DOMException」有消息「未找到錯誤」
- 26. 在safari中捕獲或更改瀏覽器錯誤消息
- 27. 如何在Relay中捕獲GraphQL錯誤消息?
- 28. 在Postman Body中捕獲外部API錯誤消息
- 29. 在多行錯誤消息中捕獲兩個字符串
- 30. 在C#中捕獲SQL Server雙消息錯誤#
我該如何捕捉到冬眠? – Egg 2009-10-09 14:52:50
'org.hibernate.exception.GenericJdbcException'是一個hibernate異常(https://www.hibernate.org/hib_docs/v3/api/org/hibernate/exception/GenericJDBCException.html)。趕上它。 – 2009-10-09 15:30:07
不錯的作業RC,應該是enuogh – Egg 2009-10-09 15:37:24