【发布时间】:2013-05-01 21:13:12
【问题描述】:
好吧,我有一个类,它的构造函数检查文件是否存在。如果文件不存在,我会抛出一个新异常。
问题是当抛出异常时,用户可以看到我所有的代码...
没办法,异常是从用户实例化类的地方检测到的?
例如
异常的启动发生在这里,这样程序员就可以在类中看到它了
if (!File.Exists(FileLocation))
{
throw new TFDException("File not found in the provided directory.");
}
但是想在这里发生,那是我实例化类的地方
TFDConnection con = new TFDConnection("D:\\File.tfd");
【问题讨论】:
-
为什么不将 ctor 调用包装在 try-catch 块中?
-
我想你想看看异常的 StackTrace。 msdn.microsoft.com/en-us/library/…
-
好吧,DLL 将被程序员使用。我的情况是使用 DLL 的程序员在实例化类时没有打开 try .. catch? (有意或无意)。是我在制作这个库的地方,应该有完全的业务规则安全性.. 直到我们得到付费的混淆器代码(即使不是完全防止,而是更困难)。因此,在我的脑海中,有可能在类和结构中,如 SqlConnection、FileInfo 等......被这样对待,我们最终所做的处理也必须给出相同的结果不是吗?情况是。如何得到这个结果。