抛出实例化类的异常 - C#

时间:2013-05-04 20:43:10

标签: c# class exception methods throw

我正在开发一个程序员将​​使用的库。 当我抛出异常时,调试器会转到抛出异常的地方,而不是实例化类或执行方法的地方。

尝试..抓住这可以解决,但是如果使用该库的程序员没有打开try .. catch?他会看到我的所有代码! 我怎么能避免这个?

3 个答案:

答案 0 :(得分:3)

  

他会看到我的所有代码!

是的,如果您分发代码。如果不这样做,您会如何看待代码?不要忘记,与大多数使用您的库的开发人员处于不同的情况,因为您的计算机上有源代码。在拥有源代码的计算机上尝试使用相同的DLL。

开发人员可能会看到您的代码的反编译版本 - 这是一个如此大的问题吗?如果是这样,你应该看一下混淆你的代码 - 但要注意这也会带来一些后勤方面的缺点。

我怀疑这确实不是问题。

答案 1 :(得分:2)

好吧,如果您创建了库的发行版并且没有提供调试器符号(pdb),那么库用户的调试器不应该显示您的代码。 OTOH,你知道像反射器这样的工具吗?你的代码并不是真正的秘密。

答案 2 :(得分:0)

如果我理解你在寻找什么,我想你想在你的代码中使用try catch而不是你处理异常的catch块,你想像这样重新抛出它:

try
    {
        //exception code
    }
    catch (Exception e)
    {
         throw e;
    }

如果我没记错的话,像这样投掷将重置堆栈跟踪,而只是抛出将保持堆栈跟踪。