UNIQUE KEY 違反條件約束 'IX_FMC_MainTableDept'。無法在物件 'FMC_MainTableDept' 上插入重複索引鍵。
陳述式已經結束。 
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。 例外詳細資訊: System.Exception: UNIQUE KEY 違反條件約束 'IX_FMC_MainTableDept'。無法在物件 'FMC_MainTableDept' 上插入重複索引鍵。
陳述式已經結束。
原始程式錯誤: 
行 91:  {
行 92:    myDb.myTran.Rollback();  
行 93:    throw(ex); 
行 94:  }
行 95:   }----------------
我要在程序有错时,我能知道错误同时抛出异常,但不能像上面一样把代码显示给用户名,怎样处理?谢谢!
 

解决方案 »

  1.   

    自定义错误.catch(express ex)
    {
    if (ex.tostring!=null)
    {
    response.wirte("出错了")
    }
    }
      

  2.   

    应该做一个错误通知画面或者可以用Javascript Alter这个错误(弹出错误消息。)你想要哪一种处理方式?
      

  3.   

    转到错误页面,也可以在webconfig里定义所有错误跳转的页面!
      

  4.   

    我的意思就是:
    1,抛出错误停止运行在这里
    2,显示错误给用户用alert
    3,不能显示代码给用户
      

  5.   

    to only_endure 自定义错误.  catch(express ex)  
    { alert("出错了")  
     } 
    ----------------------
    如果这样写的话,那我们是会知道异常
    catch(exception ex)
    {
      Response.Write(@"<script>alert('"+ex.Message.ToString()+"')</script>");
    }
    //但他在这里不会抛出异常,仍会执行下面的代码
      

  6.   

    不捕获异常,或把异常写入文件
           try
            {
                   //...
            }
           catch (Exception ex) 
           {
                FileStream file  = new FileStream(@"c:\error\error.txt", FileMode.Create);
                IFormatter formatter = new BinaryFormatter();
                formatter.Serialize(file, ex.ToString());
            file.Dispose();
           }
           
      

  7.   

    捕获到异常后,最好的方法是先记录到自己的日志文件,以便日后调试分析.
    另外,将异常错误以一个友好的方式提示用户还有,你应该在所有页面事件处理函数中,进行TRY CATCH捕获异常,否则你就容易出现黄页了.
    行 91:  { 
    行 92:    myDb.myTran.Rollback();   
    行 93:    throw(ex);  
    行 94:  } 
    行 95:   } 
    你要知道EX的原始信息,可以查看EX.INNERException 
      

  8.   


    Response.Write(@"<script>alert('这是後面的代碼')</script>");//前面出错了我就不想让它执行了======================
    [size=16px][/不行,我要在出错时抛出异常,后面的代码不执行size]
      

  9.   


    to only_endure   自定义错误.    catch(express ex)    
    { alert("出错了")    
     }   
    ----------------------  
    如果这样写的话,那我们是会知道异常  
    catch(exception ex)  
    {  
      Response.Write(@"  <script>alert('"+ex.Message.ToString()+"')  </script>");//但他在这里不会抛出异常,仍会执行下面的代码   
    }  
    Response.Write(@" <script>alert('这是後面的代碼') </script>");//前面出错了我就不想让它执行了
    ====================== 
    不行,我要在出错时抛出异常,后面的代码不执行
      

  10.   


    catch(exception ex) 

      Response.Write(@" <script>alert('"+ex.Message.ToString()+"') </script>"); 

    //但他在这里不会抛出异常,仍会执行下面的代码
    改为:catch(exception ex) 

      HttpContext.Response.Write(@" <script>alert('"+ex.Message.ToString()+"') </script>"); 
      

  11.   

    哦,你是想使用户有个友好界面,然后维护者可以看到出错信息,是吧?
    可以用数据库记录错误日志,也可以用9楼正义审判的方法.总之都是在catch块中编写代码处理.
      

  12.   

    編譯錯誤 
    描述: 資源編譯無法完成 (錯誤發生於服務要求)。請檢閱下列的特定錯誤詳細資料,並視情況修改您的原始程式碼。 編譯器錯誤訊息: CS0120: 需要有物件參考才能使用非靜態欄位、方法或屬性 'System.Web.HttpContext.Response.get'原始程式錯誤: 行 94:    myDb.myTran.Rollback();  
    行 95:    //throw new Exception(ex.Message.ToString()); 
    行 96:    HttpContext.Response.Write(@"<script>alert('?粹鈭?')</script>");
    行 97:  }
    行 98:  HttpContext.Response.Write(@"<script>alert('敺?誨蝣?)</script>");
     
      

  13.   

    可能有的异常还要写上确切的类型,比如outofrangeexception之类的.有什么异常的嵌套,具体怎么处理及注意点也忘了.
      

  14.   

    try
    {
    ...
    }
    catch(Exception ex)
    {
    ...
    throw(ex);
    }
    //这里有代码,当在前面代码执行出错时就不能执行这里的代码,也就是程序停止在throw(ex)那里,不往这里来了,只有上面的代码没错时才会执行到这里来
    其实我只想1,在catch里抛出异常
    2,我要知道是什么错误---这个写到数据库里或文件里都行,或者只用alert来呈现也可以
    3,不能把出错的代码显示给用户----这个最重要,1,2点都可以做到,但我不知怎样把3与1,2同时作用,是不是要抛出异常一定要用throw?
      

  15.   

    try 

    ... 

    catch(Exception ex) 

    ... 
    throw(ex); 

    //这里有代码,当在前面代码执行出错时就不能执行这里的代码,也就是程序停止在throw(ex)那里,不往这里来了,只有上面的代码没错时才会执行到这里来 
    其实我只想 1,在catch里抛出异常 
    2,我要知道是什么错误---这个写到数据库里或文件里都行,或者只用alert来呈现也可以 
    3,不能把出错的代码显示给用户----这个最重要,1,2点都可以做到,但我不知怎样把3与1,2同时作用,是不是要抛出异常一定要用throw?
      

  16.   

    你把出错的信息都写到数据库里或文件里,用户是看不到的。你再写个友好DIV,在里面写上友好信息。,在catch里抛出异常  =====捕获异常
      

  17.   


    在catch里抛出异常时(用throw(ex)),不是就会显示代码了吗?
      

  18.   


    借您“捕获异常”一用,“捕获异常”他还会执行B处的代码吗?
    catch(Exception ex)
    {
    A--捕获异常
    }
    B