异常

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. ADF系列-2.EO的高级属性

    在上一篇博客 ADF系列-1.EO的各个属性初探 中介绍了EO的一些常用简单属性.本次将介绍EO中一些比较常用的一些高级属性 一.基于Sequence创建EO,一下介绍三种方式(以HR用户的Emplo ...

  2. UVa 1636 - Headshot(概率)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  3. oracle数据库恢复归档脚本

    cat restorearch1.sh rman target / << EOFRUN {SET ARCHIVELOG DESTINATION TO '/archlog1/db2_arch ...

  4. 20145223 杨梦云 《网络对抗》 Web基础

    20145223 杨梦云 <网络对抗> Web基础 1.实验后回答问题 (1)什么是表单 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分:(1) 表单标签:这里面包含了处理表 ...

  5. Selenium应用代码(常见封装的方法二)

    滚动窗口: //将滚动条滚到适合的位置 , 方法一 public static void setScroll(WebDriver driver,int height){ try { // String ...

  6. tensorflow一个很好的博客

    http://blog.csdn.net/mydear_11000/article/details/53197891

  7. iOS 数据库sqlite3.0操作--超简单--看我就够啦

    iOS客户端数据存储的方式有很多,下面主要是介绍苹果自带的sqlite3.0的使用方法. 首先导入sqlite3.0的框架.然后导入头文件#import <sqlite3.h>就行了 下面 ...

  8. Java 内部类综述

    转载自:https://blog.csdn.net/justloveyou_/article/details/53245561

  9. springAOP(Aspect)权限访问页面

    1.XML进行配置切面 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="h ...

  10. sql获取时间、年龄

      mysql数据库获取年龄:TIMESTAMPDIFF(YEAR, [出生日期字段], CURDATE()) select * from (select name 姓名,TIMESTAMPDIFF( ...