1

我正在关注ZetCode上非常棒的 SLite 和 Ruby 教程,但遇到了一个愚蠢的问题。这里到底发生了什么?

rescue SQLite3::Exception => e 

    puts "Exception occured"
    puts e

我从概念上了解正在发生的事情:如果引发异常,它会打印在屏幕上。但是这个语法具体是什么?

SQLite3::Exception => e 

还有另一个简单的例子说明我会像这样使用哈希火箭吗?

谢谢!

4

1 回答 1

3

rescue语句对该符号有不寻常的用途。它的意思是“将类型的异常捕获SQLite3::Exception到变量中e”:

rescue SQLite3::Exception => e

不需要将异常捕获到变量中,如果不需要,可以省略该部分,也不需要指定异常类型,默认为异常基类Exception

语法只是巧合地与散列声明相同,可能是为了提高一致性。两者没有其他关系。

于 2013-09-19T18:03:21.987 回答