3

callerRuby例外を発生させるとき、現在のメソッド呼び出しを削除するバックトレースを生成するためにメソッドを使用できることを理解しています。

raise SomeException, "error message", caller

つるはしの本によると、これは「ライブラリモジュールで役立つことが多い」とのことです。

スタックトレースから現在のメソッドを削除したいのはなぜですか?エラーが発生した正確な場所について私が知ることができる情報が多ければ多いほど、追跡が容易になるようです。

4

1 に答える 1

3

私にとって有用と思われる理由は、スタックトレースがライブラリのユーザーを問題の原因に最も明確に示すことができるようにするためです。私のプログラミングRubyのコピーは、あなたのコピーよりも多くの洞察を提供しませんでしたが、Rubyプログラミング言語はこれで私の気持ちを確認します。

ここで取り上げる例外の目的は、メソッド内のコードではなく、...メソッドの呼び出しに関する問題を指摘することです。...問題のあるコードを直接指し示したい場合は、3番目の引数としてカスタムスタックトレースを提供できますraise...。caller

于 2012-07-02T06:34:20.180 に答える