RAISE_APPLICATION_ERROR
thủ tục
có tham số thứ ba kiểm soát xem ngoại lệ thay thế ngăn xếp ngoại lệ hiện tại (hành vi mặc định) hay thêm vào nó.
Vì vậy, nếu bạn vượt qua nó TRUE
nó sẽ hiển thị cả hai thông báo; trong cuộc gọi từ thủ tục của bạn:
...
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR (-20101, 'Problem in loading Affected Circle data',
TRUE);
END;
cung cấp cho bạn đầu ra:
BEGIN
*
ERROR at line 1:
ORA-20101: Problem in loading Affected Circle data
ORA-06512: at "SRUSER.ADD_AFFECTEDCIRCLE", line 13
ORA-20102: Circle Code is wrong or not available
ORA-06512: at line 2
Để chỉ hiển thị các thông báo chứ không phải thông tin ngăn xếp khác, bạn cần thao tác với ngăn xếp. Bài viết này
đề cập đến cách sử dụng format_error_backtrace
để trích xuất thông tin bạn quan tâm, nhưng tiếc là liên kết đến BT
gói đã chết. Một số điểm giống nhau được đề cập ở đây
. Về cơ bản, bạn cần phải phân tích cú pháp chuỗi ngoại lệ thành các dòng và chỉ hiển thị những chuỗi bắt đầu bằng ORA-20%
, Tôi nghĩ.
Nhưng hãy cẩn thận về việc mất thông tin thực sự có thể quan trọng. Đặc biệt, tôi khuyên bạn chỉ nên mắc các lỗi cụ thể mà bạn đang tìm kiếm, chứ không phải KHÁC
- hãy để điều đó một mình để bạn có thể đối phó với các lỗi không mong muốn và không che giấu điều gì đó quan trọng.