有沒有辦法捕獲警告,例如拯救異常?我不想簡單地禁用警告(通過執行$VERBOSE = nil
),但希望在運行時捕獲警告消息的內容。捕獲警告消息
Q
捕獲警告消息
1
A
回答
2
您可以重定向stderr
到StringIO對象捕捉字符串警告輸出:
require 'stringio'
old_stderr = $stderr
$stderr = StringIO.new
Foo = 1
Foo = 2 # generates a warning
puts $stderr.string # prints the warning
$stderr = old_stderr
1
這是有點難看,因爲你會被寫入文件,你可能沒有權限對其進行寫操作,它將所有輸出躲到$stderr
,不只是警告,但它的工作原理:
$stderr.reopen("errors.txt")
MyConst = 4
MyConst = 5 # generates a warning on the standard error output
$stderr.reopen("errors2.txt")
puts "The following errors happened:"
puts File.read("errors.txt")
2
require 'stringio'
def capture_stderr
old, $stderr = $stderr, StringIO.new
result = yield
[result, $stderr.string]
ensure
$stderr = old
end
相關問題
- 1. 警告消息
- 2. R2WinBUGS - 警告消息
- 3. RVM警告消息
- 4. XAMPP警告消息
- 5. ADBannerView警告消息
- 6. file_put_contents - 警告消息
- 7. PHP警告消息
- 8. 在Python上捕獲和打印警告消息> Selenium Webdriver
- 9. 我的嘗試捕獲不顯示警告消息
- 10. 通過psycopg2獲取警告消息
- 11. CodeIgniter形式警告消息?
- 12. 警告消息的問題
- 13. quantmod覆蓋警告消息
- 14. 彈出警告消息
- 15. 警告消息:TYPO3的
- 16. PHP錯誤警告消息
- 17. 編譯器警告消息
- 18. Renjin中的警告消息
- 19. iOS:CIColorKernel applyWithExtent警告消息
- 20. 彈出警告消息asp.net
- 21. 解決munmap警告消息
- 22. 警告消息Foundation 6
- 23. 顯示警告消息
- 24. 不顯示警告消息
- 25. 警告消息:org.apache.http.impl.client.DefaultRequestDirector tryExecute
- 26. 彈出警告消息
- 27. Quantmod getSymbols警告消息
- 28. C#登錄消息警告
- 29. 警告消息scikit學習
- 30. 抑制gfortran警告消息
是否可以重定向到一些Ruby的內部IO而不是外部文件? – sawa