7
當我引發異常時,是否可以創建自定義條件? 請看下面的例子:PostgreSQL自定義異常條件
BEGIN
y := x/0;
EXCEPTION
WHEN division_by_zero THEN
RAISE NOTICE 'caught division_by_zero';
RETURN x;
END;
這裏我使用「division_by_zero」條件捕捉異常。 我想要做的是這樣的:
BEGIN
[...]
RAISE custom_condition;
EXCEPTION
WHEN custom_condition THEN
[...]
END;
讓我不能夠標準異常干預。我可以做y:= 1/0;並抓住division_by_zero,但它看起來不正確。
謝謝!它適用於一個校正 - * errcode *參數應該是5位數/大寫ASCII字符,否則會導致錯誤('無效的SQLSTATE代碼')。這裏是你的鏈接註釋:'注意:當通過SQLSTATE代碼指定一個錯誤代碼時,你不限於預定義的錯誤代碼,但可以選擇由五個數字和/或大寫ASCII字母組成的任何錯誤代碼,其他建議您避免拋出以三個零結尾的錯誤代碼,因爲這些是類別代碼,只能通過捕獲整個類別來捕獲錯誤代碼。# – Snifff
@Sniff:謝謝 - 我已更正了errcode字符的大小寫 – Tometzky
@Tometzky:exception.diagnostic下的哪個屬性顯示'Bar is禁止'顯示?是MESSAGE_TEXT還是PG_EXCEPTION_DETAIL或PG_EXCEPTION_HINT? (文檔:http://goo.gl/F5w1y) – obimod