मैं यह समझने की कोशिश कर रहा हूं कि रूबी 1.8.6 में eval()
आईएनजी कोड में आने वाली वाक्यविन्यास त्रुटियों को कैसे बचाया जाए।रूबी में एक eval कैसे बचाव करने के लिए?
मैं निम्नलिखित रूबी कोड उम्मीद करेंगे:
#!/usr/bin/ruby
good_str = "(1+1)"
bad_str = "(1+1" # syntax error: missing closing paren
begin
puts eval(good_str)
puts eval(bad_str)
rescue => exc
puts "RESCUED!"
end
निम्नलिखित परिणाम उपज जब चलाएँ:
2
RESCUED!
इसके बजाय, मैं क्या मिलता है:
2
eval_rescue.rb:8: (eval):1: compile error (SyntaxError)
(eval):1: syntax error, unexpected $end, expecting ')'
ऐसा प्रतीत होता है कि eval विधि द्वारा उठाया SyntaxError मुझे एक मौका देने के बिना, eval के भीतर कहीं बचाया जा रहा है ओ इसे खुद संभाल लें।
किसी को भी कोई विचार है कि मैं जिस व्यवहार को चाहता हूं उसे प्राप्त करने के लिए (यानी, 'eval' से त्रुटि को पकड़ने के लिए मेरे 'बचाव' खंड के लिए)?
देखने के लिए कृपया इस: http://stackoverflow.com/questions/10048173/why-is-it-bad-style-to-rescue-exception-e-in-ruby – gamov