尝试 catch 不起作用并抛出异常

问题描述 投票:0回答:1

这应该能够(至少据我所知)捕获异常(因为它没有找到“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,因为我认为这里可能存在语法错误,但什么也没有。

c# command-line-interface
1个回答
0
投票

很可能是因为抛出的异常不是

Exception
的子类型。您可以通过将
catch
部分更改为:
catch (...) { /* error handling here */ }
来检查这一点。那会抓住任何能抓住的东西。

捕获 C++ 异常可能很棘手,因为 C++ 允许您抛出任何异常;你甚至可以

throw (1)
- 扔一个
int
!因此,如果
catch (...)
有效(证明您可以以某种方式捕获它),那么我建议查看
File.Copy
文档和实现(如果可能)以查看它到底抛出了什么。也许当您尝试从其他名称空间捕获
std::exception
时,它会抛出
Exception
的子类型?

© www.soinside.com 2019 - 2024. All rights reserved.