如:在运行程序中,有时候是sql语句错误,有时候是写的代码错误能不能把这这具体的错误抓出来 ??
 谢谢 !!

解决方案 »

  1.   

     抓取未知错误   
    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; }
    -------------------------------------已知道的
      

  2.   

    把Exception信息打出来基本就能区分吧
      

  3.   

    -------------------------------------已知道的,例如下面 
    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;
            }
        }
      

  4.   

    你catch 时看看是什么Exception 咯。。
      

  5.   

    try
    {
    }
    catch(SQLException ex)
    {
        //这里输出错误信息
    }
      

  6.   

    用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 无限大的值:数字不合法
      

  7.   

    要是知道是什么错误的话,就自己写threw new Execption,然后try,catch
    要是不清楚什么错误的话,就直接try,catch,然后把Execption的message show出来