成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深談VB.NET結(jié)構(gòu)化異常處理執(zhí)行標(biāo)準(zhǔn)

開發(fā) 后端
VB.NET結(jié)構(gòu)化異常處理是VB.NET編程語言的一項(xiàng)特殊功能。我們可以通過這篇文章介紹的內(nèi)容對這一機(jī)制進(jìn)行一個(gè)詳盡的了解。

對于VB.NET語言來說,在實(shí)際編程中有一個(gè)非常重要的操作值得我們?nèi)プ⒁猓蔷完P(guān)于異常方面的處理。今天我們就可以通過VB.NET結(jié)構(gòu)化異常處理的相關(guān)介紹,來仔細(xì)的分析一下異常方面的作用及應(yīng)用方法。#t#

概述

相較于VB語言來說,VB.NET引入了許多特色。其中最值得注意的變化就是引入了VB.NET結(jié)構(gòu)化異常處理。雖然VB.NET仍然支持On Error Goto類型的異常處理,但是這樣做并不是很好。我們應(yīng)該充分利用VB.NET提供的結(jié)構(gòu)化異常處理。

本文將結(jié)合VB.NET結(jié)構(gòu)化異常處理的基礎(chǔ)內(nèi)容,并看一些在我們的應(yīng)用程序中使用異常處理的例子。

合適的錯(cuò)誤處理很重要

任何應(yīng)用程序都需要一個(gè)恰當(dāng)?shù)漠惓L幚怼5牵捎趪?yán)格的開發(fā)時(shí)間限制,責(zé)任共同承擔(dān),和相沖突的優(yōu)先級,開發(fā)人員常常忽視了組織有序、考慮周到的異常處理的重要性。這常常導(dǎo)致用戶的不便和失敗,***不得不增加大量的代碼重寫工作。

結(jié)構(gòu)化異常處理

VB.NET采用了.NET框架結(jié)構(gòu)的錯(cuò)誤報(bào)告的標(biāo)準(zhǔn)機(jī)制,也就是所謂的結(jié)構(gòu)化異常處理;它根據(jù)異常來報(bào)告醫(yī)用程序中出現(xiàn)的錯(cuò)誤。異常也就是一些能夠捕捉到錯(cuò)誤信息的類。為了恰當(dāng)?shù)氖褂?NET的異常處理機(jī)制,開發(fā)人員需要編寫巧妙的代碼來密切觀察異常,同時(shí)也要編寫執(zhí)行代碼來處理這些異常。

VB.NET結(jié)構(gòu)化異常處理在代碼中提供如下部分:

Try 段:可以產(chǎn)生一個(gè)異常,并且總是能夠被執(zhí)行到的代碼段

Catch段:試圖對一個(gè)異常做出處理,當(dāng)異常發(fā)生時(shí)就會(huì)被執(zhí)行的代碼段

Finally段:進(jìn)行一些清理工作,并且總能被執(zhí)行到的代碼段

異常類

.NET中的每一個(gè)異常類都是由System.Exception類派生的。異常類中使用最頻繁的成員如下:

消息:描述一個(gè)錯(cuò)誤的具體信息

源:引起這個(gè)異常的對象或應(yīng)用程序名

目標(biāo):處理異常的方法

Try...Catch區(qū)塊

Try...Catch區(qū)塊的目的是允許捕捉錯(cuò)誤并為其指定一個(gè)具體的VB.NET結(jié)構(gòu)化異常處理解決方法。代碼看起來就像下面這樣:

  1. Try   
  2. '被執(zhí)行的代碼   
  3. Catch   
  4. '錯(cuò)誤解決代碼   
  5. Catch 結(jié)束  

用Try段來寫那些要被執(zhí)行到的代碼,而用Catch段來捕捉當(dāng)執(zhí)行Try段代碼時(shí)可能產(chǎn)生的錯(cuò)誤,并做出相應(yīng)的反應(yīng)。在Try段中出現(xiàn)的保護(hù)代碼總會(huì)被執(zhí)行到;但是,Catch段的代碼只有當(dāng)錯(cuò)誤發(fā)生時(shí)才會(huì)被執(zhí)行。代碼的Try段總會(huì)被執(zhí)行。

Try...Catch...Finally區(qū)塊

使用Try...Catch...Finally區(qū)塊的目的是允許執(zhí)行Try段中被保護(hù)的代碼,對Catch區(qū)塊中可能的任何錯(cuò)誤做出反應(yīng),并且在隨后的Finally區(qū)塊中還有清理代碼。無論Try代碼區(qū)塊是否有錯(cuò)誤發(fā)生,F(xiàn)inally區(qū)塊中的代碼都會(huì)被執(zhí)行到。這樣可以很方便的保證分配的資源會(huì)被釋放,并且可以方便地提供那些不論錯(cuò)誤控制細(xì)節(jié)如何,都要需要被執(zhí)行的各種功能的函數(shù)。代碼例子如下:

  1. Try   
  2. '執(zhí)行代碼   
  3. Catch   
  4. '錯(cuò)誤解決代碼   
  5. Finally   
  6. '清理代碼   
  7. Catch 結(jié)束  

 

捕捉所有的異常和異常的具體類

VB.NET結(jié)構(gòu)化異常處理是很靈活的,它允許捕捉一個(gè)具體類型的異常或者是任何類型的異常,這完全取決于我們怎么去使用它。

例子:捕捉任何可能發(fā)生的異常

  1. Try   
  2. Dim i As Integer = 0   
  3. Dim iresult As Integer   
  4. iresult = 1 / i  

 

把 ex 作為異常捕獲

  1. MessageBox.Show
    (ex.ToString())   
  2. Finally   
  3. MessageBox.Show
    ("finally區(qū)塊被執(zhí)行")   
  4. Try結(jié)束  

 

這是怎么運(yùn)行的

在上面的VB.NET結(jié)構(gòu)化異常處理代碼例子中,我們故意設(shè)立了一個(gè)運(yùn)行錯(cuò)誤,以此來證明可以捕捉到任何的異常。我們捕捉到發(fā)生的任何錯(cuò)誤,對它做出反應(yīng),而不管錯(cuò)誤的類型是什么。錯(cuò)誤發(fā)生在Try代碼塊中,所以當(dāng)異常產(chǎn)生時(shí)就接著執(zhí)行Catch代碼塊,然后是Finally代碼塊。我們通過聲明一個(gè)異常類型的變量ex來捕捉這個(gè)異常。

例子:捕捉一個(gè)特定類型的異常

  1. Try   
  2. Dim i As Integer = 0   
  3. Dim iresult As Integer   
  4. iresult = 1 / i  

 

把 ex 作為溢出類型的異常捕獲

  1. MessageBox.Show
    (ex.ToString())   
  2. Finally   
  3. MessageBox.Show
    ("finally區(qū)塊被執(zhí)行")   
  4. Try結(jié)束  

 

這是怎么運(yùn)行的

第二個(gè)代碼例子引起了同樣的錯(cuò)誤,因?yàn)樗噲D執(zhí)行一個(gè)以0為除數(shù)的除法,這樣會(huì)引起溢出。但是,在這個(gè)例子中,我們僅僅有興趣捕捉這種類型的異常,所以把ex變量的類型具體定義為OverflowException類型。運(yùn)行第二個(gè)例子的代碼結(jié)果和運(yùn)行***個(gè)例子一樣,因?yàn)樵趦蓚€(gè)例子中都捕捉到同樣的錯(cuò)誤;但是,第二個(gè)例子不能捕捉到其它類型的異常(非溢出類型的異常)。但是像以前一樣,不論是否捕捉到異常,F(xiàn)inally區(qū)塊中的代碼都會(huì)被執(zhí)行到。

結(jié)論

VB.NET結(jié)構(gòu)化異常處理提供了很好的靈活性,應(yīng)該合理地加以利用。一般來說,在我們開發(fā)應(yīng)用程序時(shí),錯(cuò)誤控制不應(yīng)該是***才考慮的問題。反而,我們更應(yīng)該注意建立好框架,在這個(gè)框架下建立每一個(gè)功能,這樣才能向用戶提供穩(wěn)定可靠的應(yīng)用程序。在我們的應(yīng)用程序中應(yīng)該小心地運(yùn)用異常控制。

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

2010-01-15 18:01:05

VB.NET結(jié)構(gòu)化異常

2010-01-12 15:04:01

VB.NET異常處理

2010-01-14 15:15:22

VB.NET數(shù)據(jù)行處理

2009-10-28 14:34:44

VB.NET Tree

2010-01-22 10:41:33

VB.NET聲明結(jié)構(gòu)

2010-01-18 15:01:02

VB.NET異常迭代捕

2009-10-14 16:46:25

VB.NET OnSt

2009-10-27 11:39:03

VB.NET事件處理程

2010-01-18 16:58:29

VB.NET Over

2010-01-21 17:58:40

VB.NET List

2010-01-21 18:08:25

VB.NET程序結(jié)構(gòu)

2009-10-29 14:02:24

VB和VB.NET比較

2011-06-17 11:05:22

VB.NET

2009-06-24 15:45:32

VB.NET

2010-01-19 17:03:25

VB.NET可執(zhí)行語句

2009-10-20 14:21:55

VB.NET fnSi

2009-10-14 12:51:41

VB.NET Data

2009-11-03 17:31:01

VB.NET窗體

2009-10-27 15:02:07

VB.NET文件處理

2009-11-02 16:41:55

VB.NET串行化對象
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 麻豆精品久久久 | 午夜视频一区 | 在线观看视频91 | 久久高清| www.日本在线观看 | 91国内精品久久 | 亚洲二区精品 | 欧美激情在线精品一区二区三区 | 激情伊人网 | 四虎影院一区二区 | 日韩中文字幕在线免费 | 国产精品三级 | 中文字幕在线观看一区 | 色婷婷一区二区三区四区 | 毛片一区| 国产成人在线视频 | 精品一二区 | 国产97人人超碰caoprom | 国产激情小视频 | 日本高清视频在线播放 | 亚洲男人的天堂网站 | 中文字幕不卡 | 亚洲精品中文字幕在线 | 中文字幕一区二区三区四区 | 天天综合网天天综合色 | 涩涩视频在线看 | 成人视屏在线观看 | 成人妇女免费播放久久久 | 美美女高清毛片视频免费观看 | 久久精品成人 | 天堂在线网 | 欧美一区二区三区在线看 | 国产成人综合网 | 日本不卡一区二区三区在线观看 | 国产黄色精品 | 97久久国产| 亚洲欧洲一区二区 | 91亚洲视频在线 | 免费毛片网站在线观看 | 热久久性 | 亚洲国产一区二区三区在线观看 |