C#能否在SQL连接错误时返回连接字符串?
我不希望人们在出现错误时获取连接字符串-示例:C#能否在SQL连接错误时返回连接字符串?,c#,sql-server,C#,Sql Server,我不希望人们在出现错误时获取连接字符串-示例: Try { // Some SQL code that fails } Catch (Exception sl) { MessageBox.Show("error - " + sl) } 他们是否有可能在异常sl中看到连接字符串?我怎样才能避免呢?此外,他们需要查看错误消息,但不需要连接字符串 我正在使用SQL Server 谢谢你的帮助 Yes异常可能包含敏感信息,不仅仅是连接字符串,甚至还有其他信息。作为一个好的实践,您需要捕
Try
{
// Some SQL code that fails
}
Catch (Exception sl)
{
MessageBox.Show("error - " + sl)
}
他们是否有可能在异常sl中看到连接字符串?我怎样才能避免呢?此外,他们需要查看错误消息,但不需要连接字符串
我正在使用SQL Server
谢谢你的帮助 Yes异常可能包含敏感信息,不仅仅是连接字符串,甚至还有其他信息。作为一个好的实践,您需要捕获信任边界上的所有异常,记录它们,然后抛出另一个异常,并发送一条友好消息通知客户机(调用者)。请记住,异常是一种让呼叫者知道由于意外的原因,您无法满足请求的方法。如果打电话的人能做点什么再试一次,你可以告诉他们。否则,你只需承认失败和过错是你的,你道歉并调查。他们是谁?这里,如果
他们
指的是应用程序用户,那么是的,他们在使用您的程序时无法看到连接字符串,直到程序以某种方式公开信息。如果您正确处理异常,并且没有在MessageBox中显示任何敏感信息,那么无论如何捕获基本异常
都不是一个好的做法。如果您首先捕获SqlException
,它的ToString()
方法将不会显示连接字符串,您可以在这里的实现中看到:。但这不是重点。如果向最终用户显示异常消息,则它不应包含任何技术信息(但应在开发/集成环境中)。1.捕获/2。记录完整细节/3。用户友好地显示“技术故障”exception@chetan我认为,即使是默认的异常对话框也会显示信息,以便用户看到。但是,如果异常被应用程序吞并,那么用户将看不到它。不过,你还是相信这个应用程序,因为它也是另一个用户,所以没有什么区别。谢谢你的建议。他们是用户。我会考虑让它更人性化。