1)_bstr_t( const char* s2 ) throw( _com_error );
这句话什么时候抛异常。
拷贝之MSDN上的函数,不知道什么条件下,才会throw异常。
求高手解答一下呀。2)LPTSTR lstrcpy(
  LPTSTR lpString1,  // destination buffer
  LPCTSTR lpString2  // string
);
这个函数会不会抛异常!
MSDN上没说明,但是我觉得不会抛异常。
求指点!

解决方案 »

  1.   

    一般不抛异常吧,出问题就直接导致程序CRASH了。
      

  2.   

    _bstr_是模板类, 可以看到完整的源代码, 还有就是LPTSTR lstrcpy(
      LPTSTR lpString1, // destination buffer
      LPCTSTR lpString2 // string
    ); 这个函数如果传NULL指针进去会抛结构化异常, 那是属于WINDOWS平台的东西 比如说内存访问异常, 不属于C++异常, _bstr_抛的是C++异常, 至于什么时候去抛, 建议你阅读源码
      

  3.   

    要是怕抛异常的话加异常捕获吧。
    try
    {
    //你的代码
    }
    catch (_com_error& e)
    {
    CString strMsg;
    strMsg.Format(_T("错误描述:%s\n错误消息%s"), 
    (LPCTSTR)e.Description(),
    (LPCTSTR)e.ErrorMessage());
    AfxMessageBox(strMsg);
    }
      

  4.   

    因为我在调查一问题,怀疑是_bstr_t或lstrcpy抛了异常,而问题只出现在用户那边,所以我这边无法在线。
    只能推测了。
    有木有高手给我说怎么造_bstr_t异常吗?