6

定期的にこの例外が発生します:

NotImplementedError: method `at' called on terminated object

このコード行で:

next if Hpricot(html).at('a')

このエラーはどういう意味ですか? どうすれば回避できますか?

4

2 に答える 2

2

使用しているライブラリは、カスタム C 拡張機能を利用しています。C 拡張では、すでにガベージ コレクションされている Ruby オブジェクトのメソッドを呼び出そうとしています。

これは純粋な Ruby では発生しません。ガベージ コレクターは、どの参照からもアクセスできなくなったオブジェクトのみを解放するためです。しかし C では、Ruby オブジェクトへの参照が、ガベージ コレクターがチェックしない場所 (たとえば、コンパイラーが変数を CPU レジスターに置いた可能性がある) に残っている可能性があります。

于 2014-05-14T19:56:51.360 に答える
0

リンクの問題かもしれません。拡張機能を 2 回リンクしていないことを確認してください。

于 2011-06-27T13:28:54.480 に答える