我跟随着漂亮的SLite&在ZetCode的Ruby教程已经遇到了一个愚蠢的问题。到底发生了什么?
rescue SQLite3::Exception => e
puts "Exception occured"
puts e
我从概念上得到了正在发生的事情:如果引发异常,它将被打印在屏幕上。但具体是什么语法?
SQLite3::Exception => e
还有另一个简单的例子,我可以像这样使用哈希火箭吗?
谢谢!
答案 0 :(得分:3)
rescue
语句对该表示法有不同寻常的用法。这意味着“将SQLite3::Exception
类型的异常捕获到变量e
”中:
rescue SQLite3::Exception => e
您不需要将异常捕获到变量中,如果不需要它可以省略该部分,并且您也不需要指定异常类型,这将默认为异常库班Exception
。
语法只与哈希声明巧合地相同,可能是为了促进一致性。这两者没有其他相关性。