try
{
}
catch
{
}这两个关键字的作用是什么,以及用法?请详细解答

解决方案 »

  1.   

    给你看个例子 TC++PL上的
    struct Range_error {
        int i;
        Range_error (int ii) { i=ii; }
    };  //一个自定义的用于抛出的异常类型char to_char (int i)
    {
        if (i<numeric_limits<char>::min()||numeric_limits<char>::max()<i)
            throw Range_error(i); //注意这里 在这种情况下抛出一个Range_error结构的异常 同时Range_error本身自带构造函数
        return i;
    } //测试函数然后我们可以使用我们定义的异常类型和抛出异常的函数来测试这个异常
    void g(int i)
    {
        try {
            char c=to_char(i);
            //....
        }
        catch (Range_error) { //to_char(i);可能会抛出一个Range_error类型的异常
            cerr<<"oops\n";
        }
    }
      

  2.   

    CDaoDatabase m_db;
    try
    {
        if(m_db.Open("C:\\aa.mdb"));
    }
    catch(CDaoException *e)//如果打开失败
    {
        e->delete();
        return ;
    }
      

  3.   

    推荐几篇文章,也许对你有用。
    http://www.csdn.net/develop/Read_Article.asp?Id=6022
    关于异常的使用心得http://www.csdn.net/develop/Read_Article.asp?Id=6234
    异常和错误处理http://www.csdn.net/develop/Read_Article.asp?Id=11633
    异常处理