我需要将数据库访问错误(如错误的用户名)与数据库查询错误分开(如select insert..column not exist etc.)。他们都会抛出SqlException。但是我希望我的程序在抛出查询错误时继续,但在抛出访问错误时关闭。
如何区分这两个错误?写我自己的例外?
答案 0 :(得分:1)
我建议检查SqlException的Number属性。
的回答答案 1 :(得分:0)
下面给出了删除处理的基本语法,您可以根据需要进行陷阱。这是将一个例外与另一个例外分开的方法。
try
{
// Statements that are can cause exception
}
catch(Type x)
{
// Statements to handle exception
}
finally
{
// Statement to clean up
}
另请查看How to: Create User-Defined Exceptions和Exceptions and Exception Handling (C# Programming Guide)以更好地了解异常处理,因为从您的问题来看,您似乎需要更好地了解这些概念,以便提出更好的问题。
提出你的问题标准以在这个社区中获得更好的答案,并提高接受率。
如果您正在使用asp.net,请同时查找Exception handling in C# and ASP .Net以了解如何进行异常处理。
答案 2 :(得分:0)
1错误的用户名和密码异常可以使用sqlconnection属性捕获,2异常可以使用sqlexception捕获
答案 3 :(得分:0)
为什么不处理错误消息?这会让你知道它是什么错误,例如:
try
{
}
catch(SqlException e)
{
if(e.Message=="anything") //or, maybe e.Message.Contains("column")
{
}
else{}
}
然后你可以做你想做的事!
答案 4 :(得分:0)
try{
// Do something
}
catch
(IOException ix)
{
// handle...
}
catch (System.UnauthorizedAccessException ux)
{
// handle
}
这样你可以处理访问级别异常。 要交叉检查我的回答,您可以在http://msdn.microsoft.com/en-us/library/system.unauthorizedaccessexception.aspx
进行验证