我想用類似救援的語法來實現一些東西。Ruby類似救援的語法
begin
raise "Failed"
rescue Exception => e
puts e
end
這是有效的,並且e被分配給相應的值。但是在一個方法中使用,這會引發一個異常,說e是未定義的。換句話說,如何在不拋出未定義的錯誤的情況下通過這種方式進行救援?
class MyClass
def to_s
"hello"
end
end
def my_method
puts e.to_s
end
my_method(MyClass => e)
#=> undefined local variable or method `e' for main:Object
爲什麼你不只是傳遞MyClass作爲參數? – 2012-03-12 14:44:22
事實上,我只是想知道救援工作如何...... :-) – christianblais 2012-03-12 14:51:27
這是一個句法結構,是lex/parse過程的一部分。你必須改變語言。 – 2012-03-12 14:55:21