কম্পিউটার

Pry এ ব্যতিক্রমের সাথে কাজ করা

আপনি যদি আমার মতো হন তবে আপনি অনেক বেশি রেল কনসোল ব্যবহার করেন। এবং এখন পর্যন্ত আমি মনে করি যে সবাই একমত যে প্রাই হল রেল কনসোলে ঘটানোর জন্য সবচেয়ে ভাল জিনিস...আচ্ছা, কখনও।

বিল্ট-ইন টু প্রি হল কয়েকটি সত্যিই দুর্দান্ত বৈশিষ্ট্য যা সাধারণ পুরানো IRB-এর তুলনায় ব্যতিক্রমগুলির সাথে কাজ করা অনেক সহজ করে তোলে৷

সম্পূর্ণ ব্যাকট্রেস দেখুন

Pry (বা সেই বিষয়ে IRB) তে ব্যতিক্রম ঘটলে আপনাকে ব্যাকট্রেসের একটি সংক্ষিপ্ত সংস্করণ উপস্থাপন করা হবে। এটি সাধারণত যথেষ্ট ভাল, কিন্তু সবসময় নয়।

pry-এ আপনি wtf -v কমান্ড ব্যবহার করে সাম্প্রতিক ব্যতিক্রমের সম্পূর্ণ ব্যাকট্রেস দেখতে পারেন। আপনি যদি -v পতাকা ছেড়ে যান, আপনি সংক্ষিপ্ত ব্যাকট্রেস পাবেন৷

Pry এ ব্যতিক্রমের সাথে কাজ করা সবচেয়ে সাম্প্রতিক ব্যাকট্রেস অ্যাক্সেস করতে wtf কমান্ড ব্যবহার করুন

অ্যাক্সেস এক্সেপশন ডেটা

ব্যতিক্রমগুলির সাথে প্রায়শই আকর্ষণীয় ডেটা সংযুক্ত থাকে। IRB-তে ব্যতিক্রম ঘটলে আপনি শুধুমাত্র ক্লাসের নাম এবং ত্রুটি বার্তা দেখতে পাবেন। কিন্তু Pry এর সাথে আপনার আসল ব্যতিক্রম অবজেক্টে অ্যাক্সেস আছে। তার মানে আপনি যেকোন তথ্যে পৌঁছাতে পারেন এবং আপনার প্রয়োজন মতো ডেটা বের করতে পারেন।

অতি সম্প্রতি উত্থাপিত ব্যতিক্রম পেতে, _ex_ ব্যবহার করুন পরিবর্তনশীল রুবির বিল্ট-ইন $! থেকে ভিন্ন পরিবর্তনশীল, এটি ব্যবহার করার জন্য আপনাকে রেসকিউ ব্লকের ভিতরে থাকতে হবে না।

Pry এ ব্যতিক্রমের সাথে কাজ করা ex ব্যবহার করুন সাম্প্রতিক ব্যতিক্রম অ্যাক্সেস করতে স্থানীয় পরিবর্তনশীল

ব্যতিক্রম কিভাবে প্রদর্শিত হয় তা কাস্টমাইজ করুন

ধরুন আপনি যখন প্রি-তে থাকেন তখন আপনি সর্বদা সম্পূর্ণ ব্যাকট্রেস দেখতে চান? আপনি ডিফল্ট ব্যতিক্রম হ্যান্ডলারকে ওভাররাইড করে এটি করতে পারেন।

শুধু ~/.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

আপনি এমনকি পাগলাটে জিনিসও করতে পারেন যেমন আপনার সমস্ত প্রাই ব্যতিক্রম Honeybadger-এ লগ করা। :)


  1. স্টাইলিং লিংক CSS এর সাথে কাজ করছে

  2. CSS3 ফিল্টার ইফেক্ট নিয়ে কাজ করা

  3. কিভাবে ব্যতিক্রমগুলি C++ এ কাজ করে

  4. রুবিতে কাস্টম ব্যতিক্রম