我正在开发一个程序员将使用的库。 当我抛出异常时,调试器会转到抛出异常的地方,而不是实例化类或执行方法的地方。
尝试..抓住这可以解决,但是如果使用该库的程序员没有打开try .. catch?他会看到我的所有代码! 我怎么能避免这个?
答案 0 :(得分:3)
他会看到我的所有代码!
是的,如果您分发代码。如果不这样做,您会如何看待代码?不要忘记,与大多数使用您的库的开发人员处于不同的情况,因为您的计算机上有源代码。在不拥有源代码的计算机上尝试使用相同的DLL。
开发人员可能会看到您的代码的反编译版本 - 这是一个如此大的问题吗?如果是这样,你应该看一下混淆你的代码 - 但要注意这也会带来一些后勤方面的缺点。
我怀疑这确实不是问题。
答案 1 :(得分:2)
好吧,如果您创建了库的发行版并且没有提供调试器符号(pdb),那么库用户的调试器不应该显示您的代码。 OTOH,你知道像反射器这样的工具吗?你的代码并不是真正的秘密。
答案 2 :(得分:0)
如果我理解你在寻找什么,我想你想在你的代码中使用try catch而不是你处理异常的catch块,你想像这样重新抛出它:
try
{
//exception code
}
catch (Exception e)
{
throw e;
}
如果我没记错的话,像这样投掷将重置堆栈跟踪,而只是抛出将保持堆栈跟踪。