自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Ruby異常處理結(jié)構(gòu)特點(diǎn)介紹

開發(fā) 開發(fā)工具
Ruby異常處理結(jié)構(gòu)由begin開始,然后通過raise來拋出異常,通過各種異常處理標(biāo)示符來處理顯示異常信息,最后由end來結(jié)束異常處理。

Ruby語言雖然是一款比較簡單應(yīng)用的語言,但是在實(shí)際編寫中同樣還會出現(xiàn)各種各樣的錯誤警告等。這就用到了異常處理。下面我們就來看看Ruby異常處理結(jié)構(gòu)。#t#

Ruby異常處理結(jié)構(gòu)代碼示例:

  1. begin #開始  
  2. raise.. #拋出異常  
  3. rescue [ExceptionType = 
    StandardException
    #捕獲指定類型的異常 缺省值是StandardException  
  4. $! #表示異常信息  
  5. $@ #表示異常出現(xiàn)的代碼位置  
  6. else #其余異常  
  7. ..  
  8. ensure #不管有沒有異常,進(jìn)入該代碼塊  
  9. end #結(jié)束 

可以結(jié)合$!錯誤原因,和$@錯誤位置做一個錯誤捕獲并提示的小程序,比如:

  1. begin  
  2. puts   
  3. puts "file: #{name = ARGV.shift}"  
  4. file = open(name)  
  5. i = 0 
  6. file.read.each_line
    {|line| puts "#{i+=1}.#{line}" }  
  7. rescue  
  8. puts "error:#{$!} at:#{$@}"  
  9. ensure  
  10. file.close  
  11. end  

上面的小程序讀入一個指定的文件并加入行號進(jìn)行輸出,當(dāng)產(chǎn)生錯誤時會輸出錯誤信息以及提示,可以故意輸入一個不存在的文件名。 其實(shí) begin相當(dāng)于c#的try, rescue相當(dāng)于c#的catch, ensure相當(dāng)于c#的 finaly, raise相當(dāng)于c#的 throw 。

Ruby異常處理結(jié)構(gòu)為:

Object
Exception
(Interrupt) (ruby 1.7 特性 version 1.6以前的位置)
NoMemoryError
scrīptError
LoadError
(NameError) (ruby 1.7 特性 version 1.6以前的位置)
NotImplementedError
SyntaxError
SignalException
Interrupt (ruby 1.7 特性)
StandardError
ArgumentError
IndexError
KeyError (ruby 1.9 特性)
IOError
EOFError
LocalJumpError
NameError (ruby 1.7 特性)
NoMethodError (ruby 1.7 特性)
RangeError
FloatDomainError
RegexpError
RuntimeError
SecurityError
SystemCallError
Errno::EXXX
SystemStackError
ThreadError
TypeError
ZeroDivisionError
SystemExit
fatal

以上就是對Ruby異常處理結(jié)構(gòu)的詳細(xì)解讀。

責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

2009-12-14 13:56:12

Ruby特點(diǎn)

2009-12-14 18:30:59

Ruby DSL特點(diǎn)

2010-02-22 13:35:03

WCF異常處理

2009-12-15 13:32:44

Ruby異常處理

2009-09-14 14:17:11

Linq異常處理

2009-12-14 15:04:32

Ruby性能特點(diǎn)

2011-07-21 15:20:41

java異常處理機(jī)制

2023-02-21 16:46:04

loongarch架構(gòu)

2009-08-05 18:28:05

C#異常處理

2010-01-27 16:41:48

Android特點(diǎn)

2009-12-14 13:06:08

Ruby數(shù)字類型

2009-12-16 14:40:14

Ruby控制結(jié)構(gòu)

2009-12-24 10:09:33

WPF事件注冊

2010-02-23 09:51:32

WCF MTOM

2009-12-15 11:31:53

Ruby self

2009-12-18 14:59:54

Ruby標(biāo)識名

2009-12-14 13:27:06

Ruby區(qū)間

2009-12-15 18:39:36

Ruby Active

2024-11-04 08:20:00

try-catch編程

2010-03-10 18:51:18

Python語言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號