这应该能够(至少据我所知)捕获异常(因为它没有找到“stand_dll”,但它没有,我没有太多线索知道为什么会发生这种情况
try
{
File.Copy(stand_dll, dllRandomized);
}
catch (Exception ex)
{
Console.Clear();
Console.WriteLine("Please install a stand dll before injecting.");
Console.WriteLine(ex);
}
尝试更改一些缩进(哈哈)重新执行 try catch,因为我认为这里可能存在语法错误,但什么也没有。
很可能是因为抛出的异常不是
Exception
的子类型。您可以通过将 catch
部分更改为:catch (...) { /* error handling here */ }
来检查这一点。那会抓住任何能抓住的东西。
捕获 C++ 异常可能很棘手,因为 C++ 允许您抛出任何异常;你甚至可以
throw (1)
- 扔一个 int
!因此,如果 catch (...)
有效(证明您可以以某种方式捕获它),那么我建议查看 File.Copy
文档和实现(如果可能)以查看它到底抛出了什么。也许当您尝试从其他名称空间捕获 std::exception
时,它会抛出 Exception
的子类型?