//关于异常try catch throw的用法说明一下

解决方案 »

  1.   

    我知道一点点
    一般try...catch成对的用
    try{
        ...
    }
    catch(e)
    {
        ...
    }
    其中try中是要执行的操作,可能会出错
    catch是捕捉错误并进行处理
    在try模块,你可以自己定义错误
    比如打开文件失败
    if(!OpenFile(strFileName))
       throw 2;
    那么catch(e)
    就可以抓住2这个错误,然后你可以处理这种情况我从来没有用过,请高手不要见笑
      

  2.   

    try
    {
        //程序段
    }
    catch(...)
    {
       //异常处理
    }
    以上可以捕获try程序段中的异常,当异常出现时,便执行catch程序段中代码。
    另外,还可以利用throw函数自己抛出异常,这些异常可以自己在catch中处理,也可以交给操作系统处理。
      

  3.   

    差不多
    try{}
    catch(CException e){}//具体的异常事件
    catch(...){}//捕获所有异常事件
      

  4.   

    把可能出现异常的程序段放到
    try{} 里
    把错误处理代码放到
    catch{}里
      

  5.   

    class CMyexception
    {};
    try
    {
    int nTemp = 0;
    if( nTemp == 0 )
    {
    throw(nTemp);
    }
    CMyexception myexception;
    throw(myexception);
    }
    catch(int nError)
    {
    }
    catch(CMyexception &Error)
    {
    }
    catch(...)
    {
    }
    某些操作在某些条件下不能正确执行,只能抛出一些信息告诉上层执行失败,如果不用异常也可以用错误码之类的来表示(确切的说异常情况也是属于程序正常运行)
    如上如要运用异常,必须将实际运行代码放在try块内,并在里面throw出各种类型的异常,比如int型,CMyexception型等(当然不会故意自己throw一些异常出来,一般在try块中都是调用了一些可能会抛出某种异常的函数,比如某些API函数),如果程序在执行过程中真的有异常发生,那么catch块就派上用场了,但是要注意catch块可以同时有很多(如上)但是只能捕获与catch内捕获类型一致的异常,比如catch(int nError)只能捕获int型异常,catch(CMyexception &Error)只能捕获CMyexception型异常。最后,catch(...)可以捕获所有前面不能匹配的异常类型。