プログラマーが使用するライブラリを開発しています。例外をスローすると、デバッガーは、クラスがインスタンス化された場所やメソッドが実行された場所ではなく、例外がスローされた場所に移動します。
これは try .. catch で解決できますが、ライブラリを使用しているプログラマーが try .. catch を開かない場合はどうなるでしょうか。彼は私のすべてのコードを見るでしょう!どうすればこれを回避できますか?
彼は私のすべてのコードを見るでしょう!
はい、コードを配布する場合。そうでない場合、コードがどのように表示されると思いますか? マシン上にソース コードがあるため、ライブラリを使用するほとんどの開発者とは異なる状況にあることを忘れないでください。ソース コードがないマシンで同じ DLL を試してください。
おそらく、開発者はあなたのコードの逆コンパイルされたバージョンを見るかもしれません - それはそんなに大きな問題ですか? その場合、コードを難読化することを検討する必要がありますが、これにはいくつかのロジスティックな欠点も伴うことに注意してください。
これは本当に問題ではないと思います。
ライブラリのリリース バージョンを作成し、デバッガ シンボル (pdb) を提供しない場合、ライブラリ ユーザーのデバッガはコードを表示しないはずです。OTOHさん、リフレクターなどの道具を知っていますか?あなたのコードは本当に秘密ではありません。
あなたが探しているものを理解したら、コードで try catch を使用し、例外を処理する catch ブロックの代わりに、次のように再スローすることをお勧めします。
try
{
//exception code
}
catch (Exception e)
{
throw e;
}
私の記憶が正しければ、このようにスローするとスタック トレースがリセットされますが、単にスローするとスタック トレースがそのまま維持されます。