我有一个Ruby脚本,我正在做这个
module MyModule
class MyClass
def do_something
begin
deployer_object = Object.const_get("MyModule").const_get("#{class_name}Deployer").new(@config, @directory).deploy
rescue NameError => e
MyModule::Logger.error("Error loading the deployer #{class_name}. This deployer it's not installed!")
end
end
end
end
现在它拯救了这个类中的所有NameError异常以及第五行中加载的异常。我怎样才能这样做它只能救出MyModule :: MyClass中的异常而不是在第5行初始化的异常中?谢谢!
答案 0 :(得分:2)
您无需再次将所有内容打包到begin
内。这有效:
module MyModule
class MyClass
def do_something
deployer_object = Object.const_get("MyModule").const_get("#{class_name}Deployer").new(@config, @directory).deploy
rescue NameError => e
MyModule::Logger.error("Error loading the deployer #{class_name}. This deployer it's not installed!")
end
end
end
我不完全理解你的问题。你想从中拯救什么?您不想从Deployer's
初始化程序中捕获异常?