मैं कुछ इस तरह की तलाश में हूँ की अनदेखी करने के लिए है:कौन सा सबसे छोटा रास्ता चुपचाप एक रूबी अपवाद
begin
raise Exception
rescue Exception
end
मैं कुछ इस तरह की तलाश में हूँ की अनदेखी करने के लिए है:कौन सा सबसे छोटा रास्ता चुपचाप एक रूबी अपवाद
begin
raise Exception
rescue Exception
end
def ignore_exception
begin
yield
rescue Exception
end
end
:
raise Exception rescue nil
लेकिन सबसे छोटा रास्ता मैंने पाया यह है
अब आपको कोड
ignore_exception { puts "Ignoring Exception"; raise Exception; puts "This is Ignored" }
नोट (क्योंकि मैंने पहली बार गलत समझा): यह इस अर्थ में अपवाद को अनदेखा करता है कि बाकी के बाकी हिस्सों को छोड़ने के बाद सबकुछ जारी रहता है और अपवाद को बचाता है। यह * क्या नहीं करता है, इस अर्थ में अपवाद को पूरी तरह से अनदेखा कर देता है कि यह शुरू होता है और यह बचाव और बचाव के बीच क्या कर रहा था। स्वच्छ समाधान के लिए – cesoid
बस बाएं हाथ की ओर कोष्ठक में लपेटें है:
(raise RuntimeError, "foo") rescue 'yahoo'
ध्यान दें कि बचाव ही अगर अपवाद एक StandardError या उसके एक उपवर्ग है क्या होगा। अधिक जानकारी के लिए http://ruby.runpaint.org/exceptions देखें।
यह ActiveSupport द्वारा प्रदान की जाती है:
suppress(Exception) do
# dangerous code here
end
http://api.rubyonrails.org/classes/Kernel.html#method-i-suppress
+1, लेकिन मुझे कोई निर्भरता समाधान पसंद नहीं है। – fguillen
+1 रेल के साथ महान काम करता है! – FloatingRock
मैं 'मानक' के लिए 'अपवाद' को बदलने का सुझाव दूंगा क्योंकि ['अपवाद' को बचाने के लिए यह एक अच्छा अभ्यास नहीं है] (https://stackoverflow.com/questions/10048173/why-is-it-bad-style-to- -ए-में-माणिक बचाव-अपवाद)। – aelesbao
यह सिर्फ परीक्षण के लिए है, इसलिए पूछ मेरी की अपनी भावना बचना का प्रस्ताव 'क्यों आप ऐसा करना चाहेगा?' :) – fguillen