我想while true
{
   try
   {
     ......
    }
   catch
   {
     .....
    }   
}
是不是就能保证不管try中发生什么都能一直循环下去?如果变为 catch(Expction e) 呢?
好像如果加其他的参数就不一定能拦截住所有的异常吧.
msdn读了也没有确定,还是请大家说一下,谢谢!

解决方案 »

  1.   

    while true
    {
       try
       {
         ......
        }
       catch
       {
         .....
        }   
    }
    ---------
    這樣寫好象不對吧~~~~
      

  2.   

    一般的用法while true
    {
       try
       {
         ......
        }
    catch(Expction e)
    {}
       catch
       {
         .....
        }   
    }是不是就能保证不管try中发生什么都能一直循环下去?
    -------------------------------------------------------
    不能保证,CLR自身抛出的异常无法捕获,如内存耗尽,堆栈溢出
      

  3.   

    while true
    {
       try
       {
         ......
        }
       catch
       {
         .....
        }   
    }

    while true
    {
       try
       {
         ......
        }
    catch(Expction e)
    {}
       catch
       {
         .....
        }   
    }
    都是可以的!
    都能保证while循环无限进行下去!
      

  4.   

    不能保证,CLR自身抛出的异常无法捕获,如内存耗尽,堆栈溢出呵呵,这个想的够全
    我以前catch以后再递归调用抛出异常的函数
    catch没有表达式应该是通过不了编译的阿
      

  5.   

    try catch
    捕获异常
    winform
    没有捕获就会导致系统崩溃,捕获只是一个messagebox
    尽可以的catch
      

  6.   

    while true
    {
       try
       {
         ......
        }
       catch
       {
         .....
        }   
    }
    如果这样catch中什么都不写,循环可以继续下去,如果想捕获特定异常,就在catch()中写明异常类型,如果要捕获所有异常,使用异常基类catch(Exception ex)就可以,另外,catch是从里到外,从上到下层层匹配的,一旦有匹配异常,就不会继续匹配了。这样明白了吗?
      

  7.   

    没事...不用catch
    catch 后要想到处理
      

  8.   

    谢谢大家,另外我还想问一下, finaly 中还可以写 try -catch 吗?