2017-12-02 4 views
0

私はベクトルのリストを吐き出すためにリターン関数を使う関数を開発しました。残念ながら、私のコードにはまだいくつかのバグがあります。私の機能がエラーのために失敗すると、そのベクトルのリストを回復できますか?機能中にエラーが発生しました。すべてのデータはどこに行きますか?

+1

いいえ、関数の実行時に終了する関数の環境にあります。グローバルなenvに '<< - 'を付けることはできますが、* caveat emptor * –

+1

'options(error = recover)'を探していますか? –

+0

@BenBolkerリードしてくれてありがとう。実際にdump.framesについてもっと学ぶ必要があるようです。 – MadmanLee

答えて

0

関数には独自のスコープがあるため、関数が失敗すると関数は終了し、戻り値は返されません。あなたのコードを見ずに関数が失敗する原因を言うのは難しいです。あなたのコードで制御しているものが原因で失敗した場合は、機能上の偽の結果に頼る前に解決することをお勧めします。しかし、エラー(たとえば、利用できない外部データソースを呼び出すなど)が制御から外れている場合は、tryコールで危険なコードをラップして、エラーが発生した場合に復旧できます。私はこれが役立つことを願っています

+0

ありがとうございます!素晴らしい提案。私は自分の機能の構築段階にあり、いつもエラーが出てきます。 tryCatchの引数をたくさん追加しましたが、時にはエラーをキャッチできません。私は問題の原因を見つけてそれを修正しましたが、将来的にはより多くのエラーに出くわすでしょう。 – MadmanLee

関連する問題