异常

1.异常结构

 
   [ begin]
         ...
    rescue
        [retry]
         ...
    [ensure]
         ...
    end
 
 
2.常见错误
 
  • 数据错误
  • 系统错误
  • 程序缺陷
 
3.常见错误处理方式
  • 消除导致错误的原因
  • 忽略错误并继续执行
  • 恢复到错误发生前的状态
  • 重试
  • 结束程序
  • 输入数据
  • 将错误信息通知给调用者
 
4.异常对象
     $!  : 代表最后发生的例外对象
     $@ : 代表最后发生的例外的位置信息
     例外对象的方法:  class,message,backtrace
5.在rescue下面的retry会把相同的变量值在begin下重新执行一次。
 
6.方法中的begin和end可以省略
   
 
7.

8.指定要捕获的异常,越特殊,越具体的越要放在前面。
 
 
 
9.异常的内建结构
 
   
 
     如果没有指定会捕获StandardError与其子类(异常捕获会捕获本类与其子类),所以一般让自定义例外继承自StandardError
 
10.引发例外的4种形式
 
  • raise 消息     :引发RuntimeError “消息”作为其参数
  • raise 例外类
  • railse 例外类 消息
  • raise (一般是在rescue中继续抛出,如果再rescue外部则引发RuntimeError)
 
11. catch到指定的throw以后,catch的语句块结束
 
     
 

Ruby 基础教程1-9的更多相关文章

  1. 1月10日 ruby基础教程,查漏补缺; 2月22日 Exception补充

    https://ruby-doc.org/core-2.5.0/Exception.html 1月20日练习完1,2章. 第一章 初探 ‘’单引号不执行转义符. \t 制表符.\n 换行符. p me ...

  2. Ruby基础教程

    一.Ruby基础知识 1.关于Ruby Ruby是脚本语言 Ruby是面向对象语言 Ruby是跨平台语言 Ruby是开放源码软件 2.Ruby入门书籍推荐 <Ruby.Programming向R ...

  3. Ruby 基础教程 第二部分 Ruby 的基础 第4章

    第二部分 Ruby 的基础 第4章~第6章 这一部分是 Ruby 编程需要遵守的规则. 第四章 对象,变量与常量 对象 & 类 对象的常见种类: 数值对象 字符串对象 数组.散列对象 正则表达 ...

  4. Ruby 基础教程 第一部分总结

    第一部分:Ruby 初体验 第一章: Ruby 初探 前言 开头的这一章节讲了一些十分基础的内容,重要的几个话题有: ruby 命令的执行方法 对象.方法的概念 常见的打印方法 ruby 命令的执行方 ...

  5. Ruby 基础教程1-5

    1.条件语句 if unless case        unless和if相反,条件不成立则执行   2.条件  除了 false和nil 其他都是true   3.unless 语法        ...

  6. Ruby 基础教程1-4

    1.对象 数值对象 字符串对象 数组对象,散列对象 正则表达式对象 时间对象 文件对象 符号对象 2.类 Numeric String Array Hash Regexp File Symbol 3. ...

  7. Ruby 基础教程 1-1

    1.指定编码方式       第一种 在代码文件首行通过 #encoding:GBK的方式     第二种  ruby -E UTF-8 文件名称     第三种  irb  -E UTF-8   2 ...

  8. Ruby基础教程 1-10

    类结构 1.数值类结构     Fixnum到Bignum会自动转换   2.常用数值表示   3. ans=10.divmod(3) ans[0]是商  ans[1]是余数   4.实例方法roun ...

  9. ruby 基础教程1-8-1

    1.":class, instance_of?, :is_a?"都是Object类的方法,每个对象都可以调用 2.":class"方法用户获取对象归属类的名称 ...

随机推荐

  1. PHP----练习------球队列表

    题目:页面上有一个ul球队列表当鼠标移动到某个li上的时候改行背景颜色变红,当点击某个li的时候,让该li之前的所有li背景色变黄,之后的所有li背景色变蓝.自己不变色. <!DOCTYPE h ...

  2. 系统剪切板的使用UIPasteboard

    最近发现支付宝和淘宝使用吱口令和淘口令的功能,就一直想怎么实现的,觉得应该是使用了系统的剪切板,然后查阅了资料做下笔记! 系统的剪切板主要是使用了UIPasteboard这个类. UIPasteboa ...

  3. ASP.NET WebApi 中使用swagger 构建在线帮助文档

    1 在Visual Studio 中创建一个Asp.NET  WebApi 项目,项目名:Com.App.SysApi(本例创建的是 .net 4.5 框架程序) 2  打开Nuget 包管理软件,查 ...

  4. Winodws SNMP服务安装和配置(Windows 2003 & 2008 R2)

    简单网络管理协议SNMP服务起着代理的作用,它会收集可以向SNMP管理站或控制台报告的信息.您可以使用SNMP服务来收集数据,并且在整个公司网络范围内管理基于Windows Server 2003.M ...

  5. 使用canvas输出base64_url

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Unity 游戏框架搭建 (十七) 静态扩展GameObject实现链式编程

    本篇本来是作为原来 优雅的QChain的第一篇的内容,但是QChain流产了,所以收录到了游戏框架搭建系列.本篇介绍如何实现GameObject的链式编程. 链式编程的实现技术之一是C#的静态扩展.静 ...

  7. asp.net mvc5 step by step(二)——Data Annotations(data 注释)

       以下使用在Entity Framework Code First Entity Framework Code First 利用一种被称为约定(Conventions)优于配置(Configura ...

  8. js取一个对象中的另一个对象

    最开始的截图 原本是想取到其中的foodName 先是用一个for循环循环了下 for (var i=0;i<res.data.length;i++) { this.goodsList.res. ...

  9. 小程序OSS图片上传

    图片上传加水印问题,代码如下! chooseImage: function (e) { var that = this; wx.chooseImage({ sizeType: ['original', ...

  10. js实现点击按钮可实现编辑

    <script type="text/javascript">//修改密码//抓取到的数据 function edit() { document.getElementB ...