[解決済み】rubyが切り捨てられたバックトレースではなく、完全なバックトレースを表示するにはどうしたらいいですか?
2022-04-14 06:48:49
質問
例外が発生したとき、コールスタックの奥から発生することが多いのですが、どうしたらいいですか? このような場合、多くの場合、実際に問題のあるコードの行は私から隠されています。
tmp.rb:7:in `t': undefined method `bar' for nil:NilClass (NoMethodError)
from tmp.rb:10:in `s'
from tmp.rb:13:in `r'
from tmp.rb:16:in `q'
from tmp.rb:19:in `p'
from tmp.rb:22:in `o'
from tmp.rb:25:in `n'
from tmp.rb:28:in `m'
from tmp.rb:31:in `l'
... 8 levels...
from tmp.rb:58:in `c'
from tmp.rb:61:in `b'
from tmp.rb:64:in `a'
from tmp.rb:67
あの"... 8段階..."の切り捨ては、私に大きな問題を引き起こしています。 この件に関してはググってもあまり成功しないんですよね。 どうすればrubyにダンプにフルスタックを含めるように指示できますか?
解決方法は?
Exception#backtraceにはスタック全体が含まれています。
def do_division_by_zero; 5 / 0; end
begin
do_division_by_zero
rescue => exception
puts exception.backtrace
raise # always reraise
end
(ピーター・クーパーの ルビー・インサイド ブログ)
関連
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Javaで現在のスタックトレースを取得するにはどうすればよいですか?
-
[解決済み] Pythonで例外を表示するには?
-
[解決済み] Rubyで乱数を取得する方法
-
[解決済み】プログラムを停止/終了させることなく、完全な例外トレースバックをキャッチして表示する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】そのようなファイルやディレクトリはありません @ rb_sysopen ruby
-
[解決済み】macOSでrbenvをアンインストールする方法とは?
-
[解決済み] RubyのNameError
-
[解決済み] Rubyのフィボナッチ数列(再帰)
-
[解決済み] ルビー階乗関数
-
[解決済み] Rubyで=~と/Θはどういう意味ですか?
-
[解決済み] Ruby: 文字列をブーリアンに変換する方法
-
[解決済み] Capybaraを使ったドロップダウンでのオプションの選択方法
-
[解決済み] Ruby Net::HTTPの実行期限が切れた
-
[解決済み] Rubyでfailキーワードは何をするのですか?