Ruby 代码块的高级应用:执行环绕与延迟执行
1. 执行环绕技术
执行环绕(Execute Around)是一种将细节封装在接受代码块的方法中的技术。当某些操作前后需要执行特定任务,或者操作出现异常时,就可以使用这种技术。
1.1 基本原理
在方法内部,先进行必要的准备工作,然后调用代码块,最后执行清理工作。例如,在记录日志的场景中:
def with_logging(description)
begin
@logger.debug( "Starting #{description}" )
return_value = yield
@logger.debug( "Completed #{description}" )
return_value
rescue
@logger.error( "#{description} failed!!")
raise
end
end
这个方法会在代码块执行前后记录日志,并捕获可能出现的异常。
1.2 变体形式
执行环绕方法也可以省略前置或后置操作。例如:
def log_before( description )
@logger.debug( "Starting #{description}" )
yield
end
def log_after( description )
yield
@logger.debug( "Done #
超级会员免费看
订阅专栏 解锁全文
5

被折叠的 条评论
为什么被折叠?



