Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在这种情况下如何抛出异常-c#_C#_Exception_Case_Throw - Fatal编程技术网

在这种情况下如何抛出异常-c#

在这种情况下如何抛出异常-c#,c#,exception,case,throw,C#,Exception,Case,Throw,我有一个类,它的构造函数检查文件是否存在。如果文件不存在,我抛出一个新异常 问题是当抛出异常时,用户可以看到我的所有代码 不可能,异常是从用户实例化类的位置检测到的 比如说 异常的启动发生在这里,通过这种方式,程序员可以在课堂上看到所有的异常 if (!File.Exists(FileLocation)) { throw new TFDException("File not found in the provided directory.");

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

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

不可能,异常是从用户实例化类的位置检测到的

比如说

异常的启动发生在这里,通过这种方式,程序员可以在课堂上看到所有的异常

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文件中定义的源代码,他们将无法在异常中看到实际的源代码。但总的来说,如果其他程序员真的想知道发生了什么,即使是模糊处理程序也帮不了什么忙,他们只会让事情变得更难。。。
但还有一件事——为什么要在构造函数中抛出异常?这不是很好的实践,因为它可能会使一些资源处于未知状态。。。最好避免这样的事情

为什么不将您的ctor调用包装在一个try-catch块中呢?我想您应该看看异常的StackTrace。嗯,DLL将由程序员使用。我的情况是,使用DLL的程序员没有打开一个尝试。。在实例化类时捕获?(有意或无意地)。这就是我创建这个库的地方,应该有商业规则的完全安全性。。直到我们得到了付费的模糊代码(即使不能完全防止,也相当困难)。因此,在我看来,在SqlConnection、FileInfo等类和结构中,这是可能的。。。如果这样处理,我们最终也必须给出相同结果的处理方法不是吗?情况是这样的。如何得到这个结果。嗯,DLL将被程序员使用。我的情况是,使用DLL的程序员没有打开一个尝试。。在实例化类时捕获?(有意或无意地)。这就是我创建这个库的地方,应该有商业规则的完全安全性。。直到我们得到了付费的模糊代码(即使不能完全防止,也相当困难)。因此,在我看来,在SqlConnection、FileInfo等类和结构中,这是可能的。。。如果这样处理,我们最终也必须给出相同结果的处理方法不是吗?情况是这样的。如何得到这个结果。KKKK我就是这么做的
System.Data.SqlClient.SqlConnection con=new System.Data.SqlClient.SqlConnection(“kkkk”);con.Open()请注意,我没有打开一个try。。捕获,当抛出异常时,她进入库SqlConnection。。。她只是给出了实例化的错误。你可以在我的图书馆里做吗?