C ++ / CX中的FileNotFoundException在哪里?

时间:2016-06-25 22:35:26

标签: uwp c++-cx

方法StorageFolder.GetFolderAsync应该抛出FileNotFoundException,但我无法在任何地方找到它。我怎么应该处理异常抛出呢?

1 个答案:

答案 0 :(得分:2)

StorageFolder.GetFolderAsync文档的C ++ / CX版本没有考虑到C ++ / CX中实现的异常处理(参见Exceptions (C++/CX)):

  

平台命名空间为最常见的HRESULT值定义了不同的异常类;所有其他值都通过Platform::COMException类报告。

System Namespace是.NET框架的一部分。因此,它不适用于C ++ / CX代码。仅当从.NET调用该函数时,才会抛出GetFolderAsync文档中列出的异常。

从C ++ / CX调用时,GetFolderAsync会通过Platform::COMException报告失败。 System.IO.FileNotFoundException的等效项是例外情况,HRESULT设置为HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)(0x80070002)。

C ++ / CX异常处理程序应该捕获Platform::COMException(或Platform::Exception),并检查Exception::HResult property以识别特定的异常类型。

<小时/> 参考文献: