第十章 错误处理与异常

(1)

 

(2)在rescue中使用retry后,begin以下的处理会重新执行一遍。如下例子,程序每隔10秒执行一次File.open,直到能成功打开文件为止,打开文件后再读取其内容。

如上目录中没有two2.txt文件,程序每隔10秒就运行一次,直到后面我们在该目录下创建two2.txt程序才运行结束。这个如果指定了无论如何都打不开的文件就会陷入死循环。但是这个可以用于比如抢购小米手机这样的原理,目标可以访问,你不断刷新即可。

(3)

(4)当存在多个种类的异常,我们希望对不同的异常进行不同的处理,那我们可以用多个rescue来分开处理

begin   
可能发生异常的处理
rescue Exception1, Exception2 => 变量
对Exception1 或者 Exception2的处理
rescue Exception3 => 变量
对Exception3 的处理
rescue   
对上述异常以外的异常的处理
end

 

(5)

Ruby中所有的异常都是Exception类的子类。

rescue 中指定的异常的种类实际上就是异常类的类名。

rescue 中不指定异常类时,程序会默认捕捉 StandardError 类及其子类的异常。

(6)使用class语句,我们呢就可以进行定义方法等操作。

(7)主动抛出异常

 

posted @ 2016-02-06 14:57  SixEvilDragon  阅读(95)  评论(0编辑  收藏  举报