How would I write a rescue method to recover from a failed regexp
parsing?
-Thanks
···
--
Posted via http://www.ruby-forum.com/.
How would I write a rescue method to recover from a failed regexp
parsing?
-Thanks
--
Posted via http://www.ruby-forum.com/.
th8254 wrote:
How would I write a rescue method to recover from a failed regexp
parsing?-Thanks
I don't think that raises an error. You'd have to check for a nil result instead.
--
RMagick OS X Installer [http://rubyforge.org/projects/rmagick/\]
RMagick Hints & Tips [http://rubyforge.org/forum/forum.php?forum_id=1618\]
RMagick Installation FAQ [http://rmagick.rubyforge.org/install-faq.html\]
th8254 wrote:
How would I write a rescue method to recover from a failed regexp
parsing?-Thanks
I don't think that raises an error. You'd have to check for a nil result instead.
I took the question to mean, how would I recover from a malformed Regexp error like:
>> re = /[/
SyntaxError: compile error
(irb):1: invalid regular expression; '[' can't be the last character ie. can't start range at the end of pattern: /[/
from (irb):1
I don't know of a way to recover from that specific example either, which is why I didn't jump to answer:
>> begin
?> re = /[/
>> rescue SyntaxError
>> puts "Your Regexp is malformed."
>> end
SyntaxError: compile error
(irb):3: invalid regular expression; '[' can't be the last character ie. can't start range at the end of pattern: /[/
from (irb):6
But, if you change the way the expression is built, it does seem to become a recoverable error:
>> begin
?> re = Regexp.new("[")
>> rescue RegexpError
>> puts "Your Regexp is malformed."
>> end
Your Regexp is malformed.
=> nil
James Edward Gray II
On Jun 27, 2007, at 3:05 PM, Tim Hunter wrote:
I can't catch it even with rescue Object... wow.
you could also eval it, k, thats even more evil:
begin
re = eval '/abc/'
p re
re = eval '/[/'
rescue SyntaxError
puts 'hit'
end
Sincerely
Florian
James Edward Gray II schrieb:
On Jun 27, 2007, at 3:05 PM, Tim Hunter wrote:
th8254 wrote:
How would I write a rescue method to recover from a failed regexp
parsing?-Thanks
I don't think that raises an error. You'd have to check for a nil
result instead.I took the question to mean, how would I recover from a malformed Regexp
error like:re = /[/
SyntaxError: compile error
(irb):1: invalid regular expression; '[' can't be the last character ie.
can't start range at the end of pattern: /[/
from (irb):1I don't know of a way to recover from that specific example either,
which is why I didn't jump to answer:begin
?> re = /[/
rescue SyntaxError
puts "Your Regexp is malformed."
endSyntaxError: compile error
(irb):3: invalid regular expression; '[' can't be the last character ie.
can't start range at the end of pattern: /[/
from (irb):6But, if you change the way the expression is built, it does seem to
become a recoverable error:begin
?> re = Regexp.new("[")
rescue RegexpError
puts "Your Regexp is malformed."
endYour Regexp is malformed.
=> nilJames Edward Gray II