?错误处理? 如:在运行程序中,有时候是sql语句错误,有时候是写的代码错误能不能把这这具体的错误抓出来 ?? 谢谢 !! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 抓取未知错误 try{ }catch { }------------------------数据库 try { Open(); SqlCommand mycom = new SqlCommand(sqlstr, mycon); string i = mycom.ExecuteNonQuery().ToString(); if (i != null && i != "0" && i != "-1") { Close(); return true; } else { Close(); return false; } } catch { return false; }-------------------------------------已知道的 把Exception信息打出来基本就能区分吧 -------------------------------------已知道的,例如下面 try { if (null == ds || ds.Tables.Count < 1) { return; } if (null == strDefaultName || strDefaultName.Trim().Length < 1) { throw new ArgumentException("导出的默认文件名不可为空!"); } int iDocPos = strDefaultName.LastIndexOf('.'); if (iDocPos <= 0) { throw new ArgumentException("导出的默认文件名不正确!"); } iDocPos++; //取得扩展名 string strExtenName = strDefaultName.Substring(iDocPos, strDefaultName.Length - iDocPos); if (strExtenName.Trim().ToLower() != EXTEND_XLS && strExtenName.Trim().ToLower() != EXTEND_CSV) { throw new ArgumentException("导出的默认文件的扩展名不正确!"); } } catch (Exception ex) { throw ex; } } 你catch 时看看是什么Exception 咯。。 try{}catch(SQLException ex){ //这里输出错误信息} 用try{//可能发生异常的操作}catch(//异常类型) {throw//根据操作来抛出异常}finally{//无论是否发生异常,均要执行的代码块;}语句块来处理异常。先说明一下啊,真的没必要捕获程序中可能出现的所有异常,事先要想好自己的程序里可能会有哪些异常,然后再用多个catch {throw//根据操作来抛出异常}来处理异常,最后再加个通用catch块。注意可以有多个类型的错误处理,但是只能有一个基本异常处理块catch(Exception){},C#中的所有错误类型都是从这个System.Exception类派生出来的,C#语法硬性规定一个try..catch块中只能有一个通用catch块,而且这个通用catch块必须放在最后,否则会出现编译错误。异常除了系统定义的外,还可以自己定义异常类,可以这样做:class ExceptionName:Exception{}//声明一个异常throw(ExceptionName);//引发自己的异常c#的异常处理要想做到捕获不同的异常来处理其实是需要用户对自己的程序有相当的了解才能做好的,界面上并不会显式地告诉你异常到底是什么的。一些常用异常如下:MemberAccessException 访问错误:类型成员不能被访问ArgumentException 参数错误:方法的参数无效ArgumentNullException 参数为空:给方法传递一个不可接受的空参数ArithmeticException 数学计算错误:由于数学运算导致的异常,覆盖面广。ArrayTypeMismatchException 数组类型不匹配DivideByZeroException 被零除FormatException 参数的格式不正确IndexOutOfRangeException 索引超出范围,小于0或比最后一个元素的索引还大InvalidCastException 非法强制转换,在显式转换失败时引发MulticastNotSupportedException 不支持的组播:组合两个非空委派失败时引发NotSupportedException 调用的方法在类中没有实现NullReferenceException 引用空引用对象时引发OutOfMemoryException 无法为新语句分配内存时引发,内存不足OverflowException 溢出StackOverflowException 栈溢出TypeInitializationException 错误的初始化类型:静态构造函数有问题时引发NotFiniteNumberException 无限大的值:数字不合法 要是知道是什么错误的话,就自己写threw new Execption,然后try,catch要是不清楚什么错误的话,就直接try,catch,然后把Execption的message show出来 一个picturnbox上面要画多张图,怎么才能实现?求老师啊 急需c#中怎么给两表连查赋值 分享个自己写的一个正则表达式测试工具 public long Seek(long offset,SeekOrigin origin)的使用方法! dataview 通过RowFilter 属性压缩后,其count属性也变小了吗 web临时文件问题! 刚用WEB控件怎么定义风格位置? 关于c#的socket,客户端发消息,服务端只接收一次的问题. 如何使webbrowser和ie共用代理? 电脑开机后第一次运行自己做WINFORM程序报错,求解 关于引入命名空间的问题 大家好,我问个web打印的
try{ }
catch {
}
------------------------数据库
try
{
Open();
SqlCommand mycom = new SqlCommand(sqlstr, mycon);
string i = mycom.ExecuteNonQuery().ToString();
if (i != null && i != "0" && i != "-1")
{
Close();
return true;
}
else
{
Close();
return false;
}
}
catch { return false; }
-------------------------------------已知道的
try
{
if (null == ds || ds.Tables.Count < 1)
{
return;
}
if (null == strDefaultName || strDefaultName.Trim().Length < 1)
{
throw new ArgumentException("导出的默认文件名不可为空!");
}
int iDocPos = strDefaultName.LastIndexOf('.'); if (iDocPos <= 0)
{
throw new ArgumentException("导出的默认文件名不正确!");
} iDocPos++; //取得扩展名
string strExtenName = strDefaultName.Substring(iDocPos, strDefaultName.Length - iDocPos); if (strExtenName.Trim().ToLower() != EXTEND_XLS && strExtenName.Trim().ToLower() != EXTEND_CSV)
{
throw new ArgumentException("导出的默认文件的扩展名不正确!");
}
}
catch (Exception ex)
{
throw ex;
}
}
{
}
catch(SQLException ex)
{
//这里输出错误信息
}
catch(//异常类型) {throw//根据操作来抛出异常}
finally
{
//无论是否发生异常,均要执行的代码块;
}
语句块来处理异常。先说明一下啊,真的没必要捕获程序中可能出现的所有异常,事先要想好自己的程序里可能会有哪些异常,然后再用多个catch {throw//根据操作来抛出异常}来处理异常,最后再加个通用catch块。注意可以有多个类型的错误处理,但是只能有一个基本异常处理块catch(Exception){},C#中的所有错误类型都是从这个System.Exception类派生出来的,C#语法硬性规定一个try..catch块中只能有一个通用catch块,而且这个通用catch块必须放在最后,否则会出现编译错误。
异常除了系统定义的外,还可以自己定义异常类,可以这样做:
class ExceptionName:Exception{}//声明一个异常
throw(ExceptionName);//引发自己的异常
c#的异常处理要想做到捕获不同的异常来处理其实是需要用户对自己的程序有相当的了解才能做好的,界面上并不会显式地告诉你异常到底是什么的。
一些常用异常如下:
MemberAccessException 访问错误:类型成员不能被访问
ArgumentException 参数错误:方法的参数无效
ArgumentNullException 参数为空:给方法传递一个不可接受的空参数
ArithmeticException 数学计算错误:由于数学运算导致的异常,覆盖面广。
ArrayTypeMismatchException 数组类型不匹配
DivideByZeroException 被零除
FormatException 参数的格式不正确
IndexOutOfRangeException 索引超出范围,小于0或比最后一个元素的索引还大
InvalidCastException 非法强制转换,在显式转换失败时引发
MulticastNotSupportedException 不支持的组播:组合两个非空委派失败时引发
NotSupportedException 调用的方法在类中没有实现
NullReferenceException 引用空引用对象时引发
OutOfMemoryException 无法为新语句分配内存时引发,内存不足
OverflowException 溢出
StackOverflowException 栈溢出
TypeInitializationException 错误的初始化类型:静态构造函数有问题时引发
NotFiniteNumberException 无限大的值:数字不合法
要是不清楚什么错误的话,就直接try,catch,然后把Execption的message show出来