คำถามติดแท็ก exception

2
จะจับและจัดการข้อยกเว้นเฉพาะของ Oracle ได้อย่างไร
จากนี้และนี่ฉันเดาว่าจะไม่มีข้อยกเว้นของระบบที่กำหนดชื่อไว้ล่วงหน้าสำหรับ ORA-00955 ฉันจะเขียนสิ่งต่อไปนี้เพื่อดักจับข้อผิดพลาด ORA-00955 เท่านั้นได้อย่างไร begin EXECUTE IMMEDIATE 'CREATE SEQUENCE S_TEST START WITH 1 INCREMENT BY 1'; exception when OTHERS then Null; end; BTW มีไวยากรณ์ใดที่จะตรวจจับข้อผิดพลาดโดยเพียงแค่ระบุรหัสข้อผิดพลาดหรือไม่?
20 oracle  exception 

2
วิธีรับบริบทข้อยกเว้นสำหรับข้อยกเว้นที่ยกขึ้นด้วยตนเองใน PL / pgSQL
ใน Postgres เราได้รับ "การติดตามสแต็ก" ของข้อยกเว้นโดยใช้รหัสนี้: EXCEPTION WHEN others THEN GET STACKED DIAGNOSTICS v_error_stack = PG_EXCEPTION_CONTEXT; มันใช้งานได้ดีสำหรับข้อยกเว้น "ธรรมชาติ" แต่ถ้าเราใช้ข้อยกเว้น RAISE EXCEPTION 'This is an error!'; ... จากนั้นไม่มีการติดตามสแต็ก ตามรายการส่งเมล์นี่อาจเป็นการจงใจแม้ว่าฉันจะทำไม่ได้สำหรับชีวิตของฉันก็หาสาเหตุ มันทำให้ผมอยากจะคิดหาวิธีอื่นที่จะโยนยกเว้นอื่น ๆ RAISEกว่าการใช้ ฉันเพิ่งจะเห็นบางสิ่งบางอย่างที่ชัดเจนหรือไม่? ไม่มีใครมีเคล็ดลับสำหรับเรื่องนี้? มีข้อยกเว้นที่ฉันสามารถให้ Postgres ขว้างได้ซึ่งจะมีสตริงที่ฉันเลือกไว้ดังนั้นฉันจะได้รับไม่เพียง แต่สตริงของฉันในข้อความแสดงข้อผิดพลาด แต่การติดตามสแต็กเต็มเช่นกัน? นี่คือตัวอย่างเต็มรูปแบบ: CREATE OR REPLACE FUNCTION error_test() RETURNS json AS $$ DECLARE v_error_stack text; …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.