查看: 1242|回复: 6

又有一个脚本问题

  [复制链接]
梦石
0
星屑
50
在线时间
18 小时
注册时间
2008-5-16
回帖
241
发表于 2008-8-21 06:48:36 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
  1. begin
  2.   表达式 ..
  3. [rescue [error_type,..] [then]
  4.   表达式 ..]..
  5. [ensure
  6.   表达式 ..]
  7. end
复制代码

若给出了 rescue 部分(可以有若干个)的话,就可以在发生异常时捕捉到它。若存在与异常类型一致的 rescue 部分的话,就执行 rescue 的内容。发生异常时,可以使用内部变量 $! 来查看异常的情况。

若 error_type 被省略,则将捕捉 StandardError 的子类中的所有异常。 Ruby 的大部分内部异常是 StandardError 的子类。具体请参考 内部异常类。

在 rescue 部分中,error_type 与普通的参数一样接受计算,若符合的话就执行相应部分的内容。若 error_type 的计算值既非类又非模块的话,则引发 TypeError 异常。

若存在 ensure 部分的话,则在 begin 表达式结束之前一定会计算它。

begin 表达式会返回其自身或 rescue 部分最后的计算结果。

上面这段是帮助文件里面的东西,好像看不太懂。
哪位大仙能详细的解释一下,拜谢!{/ll}
大坑在我们的心中

冰王子

梦石
0
星屑
50
在线时间
34 小时
注册时间
2008-1-27
回帖
1810
发表于 2008-8-21 11:05:35 | 显示全部楼层
说白了就是捕捉错误而已
如果捕捉到错误,就执行then后面的语句
不常在线,有事PM
回复

使用道具 举报

梦石
0
星屑
50
在线时间
18 小时
注册时间
2008-5-16
回帖
241
 楼主| 发表于 2008-8-21 18:23:55 | 显示全部楼层
那也就是说error_type这一段不用自己打喽?
还有ensure后面的表达式是什么?
大坑在我们的心中
回复

使用道具 举报

梦石
0
星屑
50
在线时间
18 小时
注册时间
2008-5-16
回帖
241
 楼主| 发表于 2008-8-21 23:12:38 | 显示全部楼层
哦,我突然领悟了!
就是ensure还不太清楚........
谁能给点提示{/hx}
大坑在我们的心中
回复

使用道具 举报

辉瑞中国首席研究员<

梦石
0
星屑
50
在线时间
142 小时
注册时间
2008-1-18
回帖
2059
发表于 2008-8-22 02:09:43 | 显示全部楼层
无论begin块是否成功,ensure代码域都将执行.

可以只用ensure或只用rescue,但当它们在同一begin...end域中时, rescue 必须放在 ensure前面.



系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
来6r就是等某位仁兄的巨坑

褴褛着身行无端,囊中羞涩空心酸。
平生几无得意事,倒塔泡面宅寝室。
惟羡隔壁高帅富,雨露春风月夜声。
青丝无处觅其踪,只有硬盘苍井空。
莫云男儿空悲愁,鸿鹄岂不天际游。
坐断天下执鹿首,千百金帛万兜鍪。
夜深忽梦某年月,再见女神欲语迟。
吊丝终有逆袭日,木耳再无回粉时。
回复

使用道具 举报

冰王子

梦石
0
星屑
50
在线时间
34 小时
注册时间
2008-1-27
回帖
1810
发表于 2008-8-22 05:40:18 | 显示全部楼层
以下引用地狱的蓝炎于2008-8-21 10:23:55的发言:

那也就是说error_type这一段不用自己打喽?

缺省是为捕捉StandardError,详细情况可以查看F1
当然也可以捕捉其他错误,如果有必要的话,但一般情况下,StandardError就足够了
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
不常在线,有事PM
回复

使用道具 举报

梦石
0
星屑
50
在线时间
18 小时
注册时间
2008-5-16
回帖
241
 楼主| 发表于 2008-8-22 23:56:45 | 显示全部楼层
感谢两位!!!非常感谢!!!就是积分有点少........(以后决定加大悬赏力度)
大坑在我们的心中
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部