में एक अपवाद के समय मेरे पास है कहते हैं:मैं बंधन पर पहुंच सकता है रूबी
begin
2.times do
a = 1
1/0
end
rescue
puts $!
debugger
end
इस उदाहरण में, मैं a
का मूल्य प्राप्त करना चाहते हैं। यदि a
begin
ब्लॉक में प्रारंभ किया गया है तो मैं बचाव करते समय इसे एक्सेस कर सकता हूं। हालांकि, इस उदाहरण में, a
ब्लॉक-स्थानीय है। अपवाद के पल में बाध्यकारी पाने का कोई तरीका है, जब मैं बचाव करता हूं?
मैं एक समाधान है कि माणिक में काम करता है, हालांकि मुझे याद है Rbx कुछ साफ 'Backtrace' वस्तुओं है कि आप के लिए उपयोगी हो सकता था के बारे में पता नहीं कर रहा हूँ। क्या आप शायद उस पर विस्तार कर सकते हैं जिसे आप प्राप्त करने की कोशिश कर रहे हैं? – riffraff
@riffraff dunno अगर मैं इसे बेहतर समझा सकता हूं। मुझे एक (इस उदाहरण में) के मूल्य को पुनः प्राप्त करने की आवश्यकता है। वास्तविक दुनिया परिदृश्य के लिए, कल्पना करें कि 2. टाइम्स ब्लॉक एक पुनरावृत्ति ब्लॉक है, प्रत्येक बार एक CSV फ़ाइल से एक पंक्ति को पुनर्प्राप्त करना। किसी बिंदु पर, लाइन नंबर 203445 (सीएसवी फ़ाइल का) पर एक अपवाद होता है। अब, मैं उस पंक्ति संख्या पर जा सकता हूं। सीएसवी फ़ाइल में यह जांचने के लिए कि क्या वह विशेष पंक्ति "ठीक है" है। या मैं एक डीबगर सत्र को बचा सकता हूं और शुरू कर सकता हूं। इस समय। मुझे – Vassilis
अपवाद के पल में बाइंडिंग देखने में सक्षम होना चाहिए, धन्यवाद, कारण मैं पूछ रहा था कि इसी तरह की स्थितियों में मेरे पास ब्लॉक ब्लॉक के अंदर त्रुटि प्रबंधन कोड था, इसलिए मुझे एकल मान को ठीक करने का मौका मिला और बस चलते रहें, जो आपके परिदृश्य में फिट होगा, हालांकि यह मूल प्रश्न का उत्तर नहीं देता है, मुझे डर है। एकमात्र चीज जो मैं सुझा सकता हूं वह यह है कि, यदि त्रुटि मूल कोड में नहीं है, तो आप कॉलर बाइंडिंग को स्टोर करने के लिए raise/विफल हो सकते हैं, लेकिन यह केवल आधा समाधान – riffraff