aru*_*roy 5 ruby exception-handling
我知道全局变量$!包含最新的异常对象,但我对下面的语法感到困惑.任何人都可以帮我理解以下语法吗?
rescue $!
Run Code Online (Sandbox Code Playgroud)
此构造可防止异常停止程序并使堆栈跟踪冒泡.它还将该异常作为值返回,这可能很有用.
a = get_me_data rescue $!
Run Code Online (Sandbox Code Playgroud)
在此行之后,a将保留请求的数据或异常.然后,您可以分析该异常并采取相应措施.
def get_me_data
raise 'No data for you'
end
a = get_me_data rescue $!
puts "Execution carries on"
p a
# >> Execution carries on
# >> #<RuntimeError: No data for you>
Run Code Online (Sandbox Code Playgroud)
lines = File.readlines(filename) rescue $!
Run Code Online (Sandbox Code Playgroud)
您要么获取行或错误(如果文件不存在,您没有权限等).无论如何,执行不会停止.
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |