Ruby 语法 begin rescue else end 使用 介绍
不经过else的例子
begin
1/0
rescue => e
puts "in rescue error is:#{e}"
else
puts "in else"
end
经过else的例子
begin
1/1
rescue => e
puts "in rescue error is:#{e}"
else
puts "in else"
end
也就是说,预计可能会报错,如果没有报错,就会走else的语句
使用的地方:报错和不报错 都会做某些类似事情的时候
上面的例子不是很贴切,没有体现else的用法,可以把esle去掉。
看一个ruby源码的例子:
x = Thread.current
y = Thread.start {
begin
sleep sec
rescue => e
x.raise e
else
x.raise exception, "execution expired" if x.alive?
end
}
yield sec
这里,waiting的时候,如果没有报错,也即是说没有异常的程序,表示时间到了,也要报错。
这样用的地方,就很合乎常理了。
。。。结束了。。。 END EOF
)
分享到:
相关推荐
- 使用`begin-rescue-else-ensure`块进行异常处理。`rescue`捕获特定类型的错误,`else`块在没有发生异常时执行,`ensure`块确保无论是否发生异常都会执行。 6. 类与对象 - Ruby是面向对象的语言,类定义以`class...
这篇博文链接()可能详细解释了Ruby的基本语法和特性,但由于没有实际内容,我将根据常见的Ruby语法知识进行阐述。 1. **变量**: Ruby有四种类型的变量:局部变量(`local`)、实例变量(`instance`)、类变量(`...
7. **异常处理**:Ruby的错误处理使用`begin..rescue..end`结构,可以捕获并处理运行时出现的异常。 8. **闭包与上下文**:Ruby的块、Proc和Lambda都是闭包,它们能记住定义时的环境,即上下文。这是实现函数式编程...
### Ruby语言教程对Ruby语法的总结 #### 一、变量与数据类型 **特点:** - **动态类型:** Ruby是一种动态类型的语言,这意味着你无需为变量声明具体的数据类型。 - **变量命名规则:** 变量名必须以小写字母或...
以下是一些从书中的截图中可以提炼的重要Ruby语法知识点: 1. **变量** - `local变量`:以小写字母开头,如`x = 10`。 - `实例变量`:以`@`开头,如`@name = "John"`。 - `类变量`:以`@@`开头,用于整个类共享...
7. **异常处理**:Ruby中的`begin..rescue..else..ensure`结构用于处理异常,确保程序在遇到错误时能够优雅地恢复。 8. ** Blocks, Procs, 和 Lambdas**:这三种都是Ruby中的代码块,它们之间的主要区别在于它们的...
Ruby使用`begin/rescue/ensure/end`来处理异常。你可以自定义异常类,或者使用已有的如`StandardError`及其子类。 7. **元编程**: Ruby的元编程能力非常强大,允许在运行时修改类和对象。`class_eval`和`...
7. **异常处理**:Ruby使用`begin-rescue-end`来捕获和处理异常。例如,`begin`开始一个异常块,`rescue`捕获错误,`end`结束。这有助于编写健壮的代码,防止程序因意外情况崩溃。 8. **Gem包管理**:Ruby使用Gem来...
7. **异常处理**:Ruby使用`begin-rescue-end`块来捕获和处理运行时错误。这有助于编写健壮的代码,确保程序在遇到错误时不会突然崩溃。 8. **标准库与Gem**:Ruby拥有丰富的标准库,提供各种功能。此外,Ruby社区...
- **异常处理**:使用 `begin...rescue...end` 结构来处理异常。 #### 八、进阶学习资源 - **官方文档**:Ruby官方网站提供了详细的文档和技术规范。 - **社区与论坛**:参与Ruby社区和论坛可以帮助解决实际问题。...
Ruby的`begin-rescue-end`块可以用来捕获并处理异常。 7. **控制流**:游戏可能会有多个回合,需要一个循环结构来控制游戏的进行,直到满足某个结束条件(比如玩家选择退出或者达到一定回合数)。 8. **输出反馈**...
此外,Ruby的异常处理使用`begin/rescue/ensure/end`结构,可以捕获和处理程序运行时可能出现的错误。例如: ```ruby begin raise "An error occurred" rescue => e puts "Error: #{e.message}" end ``` 以上只...
- 控制结构:包括条件语句(`if/else`、`case`)、循环(`for`、`while`、`until`、`times`)和异常处理(`begin/rescue/ensure/end`)。 2. **Ruby的Gem生态** - Gem是Ruby的包管理器,用于安装和管理各种库和...
- **异常处理:** 使用`begin...rescue...ensure`结构来捕获和处理异常。 - **定义异常类:** 可以自定义异常类来抛出特定类型的异常。 - **catch和throw:** 提供了一种简单的异常抛出和捕获机制。 #### 十、多...
异常处理是任何编程语言的重要部分,Ruby使用`begin..rescue..else..ensure`结构来捕获和处理错误。`ensure`块确保即使在异常发生时,某些清理代码也会执行。 Ruby还强调了代码的可读性和DRY(Don't Repeat ...
- 使用`begin`、`rescue`、`else`、`ensure`进行异常处理。 - 异常类如`StandardError`、`RuntimeError`等,可以通过`raise`抛出异常。 7. **元编程**: - Ruby的元编程能力强大,可以在运行时修改类和对象的...
Ruby使用`begin...rescue...end`块来捕获和处理异常。 ```ruby begin raise "An error occurred!" rescue => e puts e.message end ``` **9.2 定义异常类** 可以自定义异常类来抛出自定义错误。 ```ruby class...
4. **异常处理**:理解Ruby中的异常(Exception)和错误处理,如begin-rescue-end结构。 5. **文件和I/O操作**:如何读写文件,使用标准输入/输出和重定向,以及流(IO Stream)的概念。 6. **正则表达式**:Ruby...
7. **异常处理**:Ruby中的`begin..rescue..else..ensure`结构用于异常处理,书中可能会有相关问题,教你如何优雅地处理错误。 8. **Gem生态系统**:Ruby的库管理工具Gem提供了丰富的第三方库,如Nokogiri(XML处理...