gpt4 book ai didi

c# - 向客户端显示来自 PL/SQL 过程的错误消息

转载 作者:太空宇宙 更新时间:2023-11-03 14:13:08 25 4
gpt4 key购买 nike

我的 C# 客户端中有一个 try block ,它执行 Oracle PL/SQL 存储过程和一个使用 Exception 类的 catch block 。

在存储过程中,如果在数据处理过程中遇到特定情况,则使用raise_application_error 引发异常。

示例: raise_application_error(-20001, myErrMsg)

然后我想捕获此异常并在 C# 客户端中按原样显示此特定消息。

对于所有其他与数据库相关的错误(例如约束失败、连接错误),我想捕获它们并将它们显示在 C# 客户端的自定义错误消息中。

在我的 catch block 中,我是否应该在异常消息字符串中搜索字符串 ORA-20001 然后将其传播到客户端以确定是否上面的异常是从过程中抛出的吗?

最佳答案

如果可以,请捕获 Oracle 异常。

  try
{
cmd.CommandText = "DELETE FROM myable";
cmd.ExecuteNonQuery();
}
catch (OracleException ex)
{
//Put your ORA-20001 logic here, or call a common method as shown
HandleOracleException(ex);
}

在 catch 处理程序中,检查数字是否为 20001,然后采取适当的操作。

这里是OracleException的一些属性

数据源指定包含连接到 Oracle 实例的信息的 TNS 名称

错误指定包含有关信息的一个或多个 OracleError 对象的集合Oracle数据库产生的异常

内部异常继承自Exception

留言指定异常中出现的错误信息

数量指定 Oracle 错误号

程序指定导致异常的存储过程

来源指定产生错误的数据提供者的名称

堆栈跟踪继承自Exception

目标站点继承自Exception

更多信息链接:

http://download.oracle.com/docs/cd/B19306_01/win.102/b14307/OracleExceptionClass.htm

关于c# - 向客户端显示来自 PL/SQL 过程的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7194371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com