繁体   English   中英

在这种情况下如何引发异常-C#

[英]How to throw the exception in this case - c#

好吧,我有一个其构造函数检查文件是否存在的类。 如果文件不存在,则抛出新异常。

问题是当引发异常时,用户可以看到我的所有代码...

没办法,从用户实例化类的地方检测到异常?

例如

异常的启动在这里发生,这样,程序员可以在类中看到所有异常

if (!File.Exists(FileLocation))
        {
            throw new TFDException("File not found in the provided directory.");
        }

但想在这里发生,那是我实例化课程的地方

TFDConnection con = new TFDConnection("D:\\File.tfd");

你可以这样做

try
{
    TFDConnection con = new TFDConnection("D:\\File.tfd");
}
catch(Exception exx)
{
}

赶上例外

如果源代码无法在pdb文件中定义的相同位置供其他程序员使用,则他们将不会看到实际的源代码异常。 但是总的来说,如果其他程序员真的想发现正在发生的事情,那么即使是混淆器也无济于事,它们只会使事情变得更难了……但是还有另一件事-为什么在构造函数中抛出异常? 这不是很好的做法,因为它可能会使某些资源处于未知状态...最好避免这种情况

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM