ถ้าคุณแบบผม ใช้ Rails console บ่อย และตอนนี้ทุกคนคิดว่า Pry คือสิ่งดีที่สุดเกิดขึ้นกับ Rails console ตั้งแต่...เมื่อไหร่ก็ตาม
Built-in ใน pry มี features cool ที่ทำให้จัดการ exceptions ง่ายกว่า IRB ทั่วไปมาก
View Full Backtrace
เวลา exceptions เกิดใน Pry (หรือ IRB) ได้ shortened backtrace ปกติพอ แต่ไม่ใช่เสมอไป
ใน pry ดู full backtrace ของ most recent exception ด้วยคำสั่ง wtf -v ถ้าไม่ใส่ -v flag ได้ abbreviated backtrace
ใช้คำสั่ง wtf เข้าถึง most recent backtrace
Access Exception Data
Exceptions มักมี data น่าสนใจ attached ใน IRB เห็นแค่ class name และ error message แต่ Pry เข้าถึง exception object จริง ดึง data ที่ต้องการได้
ดู most recently raised exception 用 variable _ex_ ต่างจาก Ruby built-in $! ไม่ต้องอยู่ใน rescue block
ใช้ ex local variable เข้าถึง most recent exception
Customize How Exceptions Are Displayed
สมมติอยากดู full backtrace เสมอใน pry ทำได้โดย override default exception handler
เปิด ~/.pryrc ทำให้เป็นแบบนี้:
# This code was mostly taken from the default exception handler. # You can see it here: https://github.com/pry/pry/blob/master/lib/pry.rb Pry.config.exception_handler = proc do |output, exception, _| if UserError === exception && SyntaxError === exception output.puts "SyntaxError: #{exception.message.sub(/.*syntax error, */m, '')}" else output.puts "#{exception.class}: #{exception.message}" output.puts "from #{exception.backtrace}" end end
ทำ crazy stuff ได้ เช่น log ทุก Pry exceptions ไป Honeybadger :)