前提:
在Oracle apex使用中,一般在执行代码错误的时候报错,我们还可能会遇到,在逻辑中处理一些报错信息,想要返回到前端页面中
1. RAISE_APPLICATION_ERROR
代码如下:
----------------------------------自定义错误信息
RAISE_APPLICATION_ERROR(-20001,'P61 IS_NULL 参数值不正确');
显示结果为:
注意:
其中,错误代码范围是 -20000 至 -20999,自己定义,
RAISE_APPLICATION_ERROR 一旦自定义错误被抛出,它将立即终止当前的 PL/SQL 块,并返回错误信息给客户端
2. apex_error.add_error
代码如下:
DECLARE
l_error_message varchar2(200) := '自定义错误信息';
BEGIN
-- 执行某些操作(例如插入数据)
INSERT INTO my_table (col1, col2) VALUES ('value1', 'value2');
-- 检查是否有错误
IF SQL%ROWCOUNT = 0 THEN
-- 如果出错,则添加自定义错误信息到堆栈中
apex_error.add_error (
p_message => l_error_message,
p_additional_info => '额外的错误信息',
p_display_location => apex_error.c_inline_with_field_and_notif,
p_page_item_name => 'P1_MY_PAGE_ITEM'
);
END IF;
EXCEPTION
-- 在异常处理中添加自定义错误信息
WHEN OTHERS THEN
apex_error.add_error (
p_message => l_error_message || ': ' || SQLERRM,
p_additional_info => '额外的错误信息',
p_display_location => apex_error.c_inline_with_field_and_notif,
p_page_item_name => 'P1_MY_PAGE_ITEM'
);
END;
错误提示类似于这种!
注意:
apex_error.add_error 被调用时,它会向 APEX 运行时错误堆栈中添加一个新的错误消息,而当前的 PL/SQL 块或事务会继续执行。只有当事务提交或回滚时,错误消息才会被显示给用户。
p_message:
字符串类型。表示要显示的错误消息。
在上述代码示例中,l_error_message 表示自定义的错误消息和 Oracle 引擎抛出的错误消息的组合。字符串类型。
p_additional_info:
字符串类型。表示要显示的有关错误的附加信息。通常,此参数用于提供更具体的上下文或帮助信息。
例如,可以将数据库表名称或其他相关细节添加到此参数中。
p_display_location:
枚举类型。表示错误消息在页面上的显示位置。枚举类型 apex_error.display_location_types 包括以下选项:
c_not_inline: 不在页面上显示错误消息(默认选项)。
c_inline_in_notification: 在通知区域内显示错误消息。
c_inline_with_field: 在错误的字段旁边显示错误消息。
c_inline_with_field_and_notif: 同时在通知区域和错误的字段旁边显示错误消息。
p_page_item_name:
:
字符串类型。表示与错误消息相关联的页面项名称(可选)。如果指定了此参数,则错误消息将在该页面项旁边显示。