代码如下,为了捕获异常并进行处理应该怎样加Try Catch语句???
 private void HZSJ_ASHZ_ValueChanged(object sender, EventArgs e)
  {
  //先清空数据
  BKSR_ASHZ.Text = "";
  CZSR_ASHZ.Text = "";
  XJSR_ASHZ.Text = "";
  SPSR_ASHZ.Text = "";  HZSJ_ASHZ1.Text = HZSJ_ASHZ.Text;
  //办卡收入
  string hzsj=HZSJ_ASHZ.Value.ToString("yyyy-MM-dd");
  string sql = "select sffy from hykblb where bksj=#"+hzsj+"#";
据高手+专家推测,这两句应该会出现异常。但是应该怎样加处理异常的语句呢?请您指点

  AccessDB access = new AccessDB();
  OleDbDataReader rd = access.RunAs(sql);
  int sum=0;
  while (rd.Read())
  {
  if (rd["sffy"].ToString() != "")
  {
  int num = int.Parse(rd["sffy"].ToString());
  sum = sum + num;
    
  }
  else   
  {
  continue;
  }
  }
  BKSR_ASHZ.Text = sum.ToString();
  rd.Close();
在下的方案,不知道对否:
string hzsj="";try
{
hzsj=HZSJ_ASHZ.Value.ToString("yyyy-MM-dd");
}
catch(Exception ex)
{
DateTime hzsj=DateTime.ParseExact(HZSJ_ASHZ.Text,"yyyy-MM-dd");}

解决方案 »

  1.   

    可能出现问题的地方都可以放在try里面。。LZ对时间格式有效性验证建议在前台做。。
      

  2.   

    给int num = int.Parse(rd["sffy"].ToString());加一个try
      

  3.   

    try
    {
    //可能出现问题的代码段}
    catch (exception ex)
    {
    //如果出现问题的处理方法,下面打印问题描述
    MessageBox.Show(ex.description);
    }
    finall
    {
    //不管是否出现问题都要运行的语句
    MessageBox.Show("程序运行结束");
    }
      

  4.   

    把怀疑的语句放在try{}里面,然后在catch()中根据Exception的输出内容查看捕获异常
      

  5.   

    回复4楼,catch能够捕获系统反馈的异常信息以供调试用,但是一般都是用异常告诉用户一个结果。比如用户判断变量是否大于100,可以这样写:
    int i=10;
    try
    {
    i>100;
    }
    catch
    {
    MessageBox.Show("错误,变量i小于100");
    }
      

  6.   

    晕,看错了4楼的回答,我看成了“怀疑把语句放到try{}里”....呵呵
      

  7.   

      在有可能出现异常的地方都可以使用try catch语句。
      使用方法很简单
      try
      {
        
      }
       catch(Exception ex)
       {
            
       }  以上是捕获所有异常,如果只正对一个异常那么给的参数就不一样了!!
      

  8.   

    如果你滥用try...catch...,那么对于任何稍微有点难度、深度的应用程序都是一个灾难。你的程序在用户面前出洋相而输出的各种信息完全驴唇不对马嘴时,你却无法调试找到问题的最初根源。因为程序员只知道盲目掩盖错误,而让错误的数据像滚雪球一样膨胀起来,程序员确还在那里夸奖自己的程序不会抛出异常的“本事”。如果你发布一个程序用于测试,可以保持debug,甚至并且(除了程序最外层一个捕获代码以外)从来不用try...catch....,让异常尽早出来,你才知道该尽早去查找异常的真正原因。而找到了原因之后,代码中就应该用if判断来预先探查是否有异常,并在正常的流程设计中处理问题,这就更没有必要滥用try...catch...来掩盖异常。
      

  9.   

    见过实习生写出画蛇添足的代码,在catch中去throw或者messagebox.show。不去随便捕获它,如果运行时有异常,vs调试器就直接定位到抛出异常的代码那里了,于是你就可以看到针对所定位的代码的准确的一堆信息。而上述两种写法,除了搅乱调试器定位位置,还能多做什么呢?
      

  10.   

    嗯,滥用try...catch...而暗自庆幸这是“技术手段”只会出现在那些喜欢花大量时间去“编”程序的人,他们不了解软件开发的质量控制手段,或者想知道却从来没有做到过。
      

  11.   

    就是将所有可能会出现错误的代码放到trycatch语句里面了
      

  12.   

    不知道会出异常吗,看似并不难的语句啊。实在不行就不用 txt框,可以用 date日期框试试。
      

  13.   


    请教:在catch中去messagebox.show画蛇添足?这个怎么解释呢?当要求用户输入数字,但是当用户错误其他字符时,在catch中去messagebox.show也是画蛇添足吗?