gpt4 book ai didi

asp.net - 从 SQLException 错误输出异常

转载 作者:行者123 更新时间:2023-12-02 11:24:33 25 4
gpt4 key购买 nike

我有一个 .aspx 页面调用 .asmx 页面的 Web 服务。在该 .net Web 服务中,我尝试打开与 SQLServer 2008 的数据库连接。连接失败。我不知道为什么。我在 try/catch 中执行此操作,当我调试时,catch 确实会被命中。我不确定我可以在那里输出什么,因为我无权访问服务器的文件系统来写入日志文件。

我发现了这个帖子:

try
{
SqlCommand cmd =
new SqlCommand("raiserror('Manual SQL exception', 16, 1)",DBConn);
cmd.ExecuteNonQuery();
}
catch (SqlException ex)
{
string msg = ex.Message; // msg = "Manual SQL exception"
}

here,它可能对我有用,但我不知道如何将 msg 字符串输出到调用此 Web 服务的页面?有没有办法通过让调用页面也实现相同的异常处理程序来将其传播到异常链?

谢谢//:)

最佳答案

您应该能够将 SQL 异常捕获为特定类型并读取特定的错误消息:

try{
...
}
catch(SQLException sqlex)
{
/// do some work here with sqlex.Message
}
catch(Exception ex)
{
/// this will trap any other 'type' of exception incase a sqlex is not thrown.
}

然后您可以将其“放入堆栈”,这意味着将其发送回调用失败代码的方法:

catch(SQLException sqlex)
{
throw sqlex;
}

或者您可以根据 sql 异常抛出一条新消息:

catch (SQLException sqlex)
{
throw new Exception("My method threw an exception in SQL:" + sqlex.Message);
}

所有这些方法都允许您将消息从堆栈发送回调用 SQL 的客户端。这是您应该呈现消息的地方。

关于asp.net - 从 SQLException 错误输出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1892609/

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