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

在贛縣等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)營銷推廣,外貿(mào)網(wǎng)站制作,贛縣網(wǎng)站建設(shè)費(fèi)用合理。
Ruby異常處理結(jié)構(gòu)代碼示例:
- begin #開始
- raise.. #拋出異常
- rescue [ExceptionType =
StandardException]
#捕獲指定類型的異常 缺省值是StandardException - $! #表示異常信息
- $@ #表示異常出現(xiàn)的代碼位置
- else #其余異常
- ..
- ensure #不管有沒有異常,進(jìn)入該代碼塊
- end #結(jié)束
可以結(jié)合$!錯(cuò)誤原因,和$@錯(cuò)誤位置做一個(gè)錯(cuò)誤捕獲并提示的小程序,比如:
- begin
- puts
- puts "file: #{name = ARGV.shift}"
- file = open(name)
- i = 0
- file.read.each_line
{|line| puts "#{i+=1}.#{line}" }- rescue
- puts "error:#{$!} at:#{$@}"
- ensure
- file.close
- end
上面的小程序讀入一個(gè)指定的文件并加入行號進(jìn)行輸出,當(dāng)產(chǎn)生錯(cuò)誤時(shí)會(huì)輸出錯(cuò)誤信息以及提示,可以故意輸入一個(gè)不存在的文件名。 其實(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ì)解讀。
分享標(biāo)題:Ruby異常處理結(jié)構(gòu)特點(diǎn)介紹
文章位置:http://fisionsoft.com.cn/article/cojejop.html


咨詢
建站咨詢
