`
liss
  • 浏览: 842514 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ruby学习笔记(9)--异常处理

    博客分类:
  • Ruby
阅读更多

def  evalMethod(str)
 result =eval(str).to_s
#捕捉异常相当于catch
rescue ZeroDivisionError
 result= '不能被0除'
#更一般的异常
rescue Exception=>err
 result=  err.to_s
#相当于finally
ensure
 return result
end

puts evalMethod("1*2*3") #6
puts evalMethod("1*2*3/0") #不能被0除
puts evalMethod("[1]*10.each{}") #undefined method `each' for 100:Fixnum

#抛出异常
def RaiseException(excep)
  if excep
    raise
  else
    raise 'false'
  end
  rescue Exception=>err
  return err
end

puts RaiseException(true) #''
puts RaiseException(false) #'false'

#自定义异常
class DefinedException < Exception
  attr_reader :attribute
  def initialize(str)
    @attribute=str
  end
end

#抛出自定义异常
def RaiseException2
raise DefinedException.new('DefinedException.attribute')
rescue DefinedException=>de
return de
end
puts RaiseException2().attribute #DefinedException.attribute


#一个catch块将会正常执行,直到遇到一个throw
result=0
catch :QuitThrow do
 (1..4).each{|x|
  lambda{|digit|
   result+=digit
   #遇见throw,释放堆上的指针并终止块的运行,返回到标签处
   throw :QuitThrow if digit>=3
 }.call(x)}
end
puts result #6


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/blackant2/archive/2006/12/04/1428803.aspx

分享到:
评论

相关推荐

    ruby笔记1ruby笔记1ruby笔记1

    标题中的"ruby笔记1ruby笔记1ruby笔记1"暗示了这是一份关于Ruby编程语言的学习笔记,可能包含了作者在学习过程中的重点、难点以及心得体验。描述中的内容重复了标题,进一步强调了这是关于Ruby的深入学习记录。标签...

    Ruby学习笔记(学习心得)

    Ruby学习笔记 01 类的属性与方法 02 访问控制 03 Container(Array/Hash) 04 Iterator 05 简单数据类型 06 范围 07 方法 08 条件控制 09 异常处理

    rubyinstaller-devkit-3.0.2-1-x64 and Ruby 学习笔记.7z

    这可能涵盖Ruby的基础知识,如变量、控制结构、类和对象、模块、方法、异常处理、文件I/O以及Ruby on Rails框架的入门等内容。Ruby语言支持面向对象编程,其核心理念是“一切皆对象”,这使得编程更加灵活且易于理解...

    ruby语言入门教程-自学笔记

    Ruby支持多种控制结构,包括条件语句(if-else)、循环语句(for、while、until、each等)和异常处理(try-catch-finally)。 示例代码: ```ruby # 条件语句 num = 10 if num &gt; 10 puts "Number is greater than...

    学习 Ruby 的笔记以及 Demo.zip

    在学习过程中,你将接触到控制结构(如if语句、循环)、类和对象的创建、模块的使用、异常处理、文件和IO操作等基础内容,也会了解到如何使用Gem(Ruby的包管理器)安装和管理外部库,以及如何调试和测试Ruby代码。...

    ruby学习笔记

    根据提供的“ruby学习笔记”内容,我们可以从中提炼出多个重要的Ruby编程知识点,这些知识点对于初学者来说非常有用。下面将对这些知识点进行详细的解释与扩展。 ### 一、Ruby中的全局变量 Ruby提供了多个特殊变量...

    ruby笔记2ruby笔记2ruby笔记2

    "ruby笔记2ruby笔记2ruby笔记2"可能是指一系列关于Ruby学习的笔记,这些笔记可能涵盖了Ruby的基础概念、核心特性以及进阶话题。在Ruby的学习过程中,理解和掌握以下几个关键知识点至关重要: 1. **面向对象编程...

    ruby笔记3ruby笔记3ruby笔记3

    在Ruby笔记3中,我们将会深入探讨这个强大的语言的各个方面,包括基础语法、类与对象、模块、方法、控制结构、异常处理、文件操作以及一些高级特性。 首先,让我们从基础语法开始。Ruby中的变量分为四种类型:局部...

    Java JDK 6学习笔记.zip

    6. **Java Database Connectivity (JDBC)**:JDBC 4.0引入了一些新特性,如自动连接池管理、统一的异常处理和增强的驱动程序元数据。 7. **Web服务支持**:Java API for RESTful Web Services (JAX-RS) 1.0的引入,...

    ruby初学笔记ruby初学笔记

    4. **控制结构(Control Structures)**:包括条件语句(如`if...else`、`unless`)、循环(如`for`、`while`、`until`、`times`和`each`)、和异常处理(`begin...rescue...end`)等,这些是编写逻辑代码的基础。...

    ruby介绍及相应的ruby demo示意源码,供大家参考学习

    Ruby的异常处理使用begin-rescue-end结构,这使得错误处理更为直观。Ruby还提供了丰富的内建库,如文件操作、网络通信、正则表达式等,使得开发者能快速构建各种应用。 Ruby on Rails是Ruby最知名的Web开发框架,它...

    Python 学习笔记 第三版1

    《Python 学习笔记 第三版1》是一本面向有一定Python编程基础的读者的书籍,旨在深入解析Python 3.6的语言特性。作者虽然已经具备一定的写作经验,但仍然谦虚地表示无法确保内容完全正确,同时满足所有人的需求。他...

    Ruby 语言教程从小白到入门

    总的来说,通过这个“Ruby 语言教程从小白到入门”的学习,你将能够掌握Ruby的基础知识,包括语法、面向对象编程、异常处理、标准库的使用等。随着对Ruby理解的深入,你将能够编写出更高效、更优雅的代码,进一步...

    java学习笔记JDK6课件和课本代码

    2. **JDBC API改进**:JDBC 4.0在JDK 6中引入,提供了自动类型转换和更好的异常处理,简化了数据库连接和数据操作。 3. **XML处理**:JDK 6加强了DOM、SAX和StAX解析器的性能,提供了更高效的数据交换方式。 4. **...

    programming_language:编程语言学习笔记

    "programming_language:编程语言学习笔记"这一主题旨在整理和探讨各种编程语言的关键特性、语法结构以及在实际开发中的应用。 首先,编程语言可以分为几大类别,如低级语言(机器语言和汇编语言)和高级语言(如C,...

    note:笔记

    在Ruby编程语言中,笔记可能涵盖了许多主题,包括基本语法、数据类型、控制结构、类与对象、模块、方法、异常处理、文件操作以及与其他语言的交互等。下面将对这些核心概念进行深入探讨。 首先,Ruby是一种面向对象...

    发射学校:在发射学校学习精通的同时编写代码和日志

    学习者在Launch School中可能涵盖了Ruby的基础语法、类与对象、控制结构、文件操作、异常处理、模块化编程等多个方面的内容。 【压缩包子文件的文件名称列表】:"launch-school-main" 这个文件名可能是仓库的主目录...

    ls_rb130:开展学校课程RB130的笔记,示例,练习

    5. **异常处理**:学习如何使用`begin-rescue-ensure-end`来捕获和处理运行时错误。 6. **标准库和Gem**:Ruby的标准库非常丰富,包括I/O操作、网络编程、正则表达式等。另外,Ruby的Gem系统是其强大的生态之一,...

    TIL:今天我学到了

    这个目录可能包含了一系列关于Ruby学习的笔记、代码示例、练习项目或其他资源。 详细知识点: 1. **面向对象编程**:Ruby是一种纯面向对象的语言,所有数据都是对象,每一个操作都可以看作是对对象的方法调用。 2...

    courses

    6. **异常处理和错误调试**:讲解如何在Ruby中捕获和处理异常,以及有效的调试技巧。 7. **性能优化**:如何通过优化代码和利用Ruby特性来提升程序性能。 8. **项目实战**:可能包括完成小型项目的指导,帮助学习者...

Global site tag (gtag.js) - Google Analytics