友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

VB2008从入门到精通(PDF格式英文版)-第63章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




           generate an exception separate from any existing state that could be corrupted。 Once the manipulations have  

           been carried out; you integrate the objects into the global state using method calls that are extremely unlikely  

           to generate exceptions。 For those situations when you must manipulate existing state; use a  Finally handler;  

           so that the previous existing state can be re…created if necessary。 



           Filtering Exceptions 



           In all of the examples presented so far in this chapter; the Catch statement used the Exception type: 



           Catch exception1 As Exception  



                 Exception will catch every exception。 


…………………………………………………………Page 149……………………………………………………………

                               CH AP T E R   5   ■    L E AR N IN G   AB O U T   V I SU A L   B AS IC   E X CE PT I ON   HA N D L IN G 127 



     In Figure 5…3; the IDE caught an exception; referencing NullReferenceException; which is  

a specific type of exception。 When you use it in a Catch statement; you will catch only null refer

ence exceptions。 

     By specializing the exception; you have the ability to filter which exception you want to  

catch。 For example; NotSupportedException will catch only instances of NotSupportedException  

exceptions。 Here is an example: 



Try  

    Throw New NotSupportedException(〃There is no code〃) 

Catch ex As NotSupportedException 

End Try 



     If the code within the Try block threw an instance of Exception; the Catch block would not  

trigger; because the Catch block was looking for a specific exception type。  

     Exception types can be bined to provide specific filtering capabilities。 The specific  

exception type should be the first exception after the Try block; as in this example: 



Try  

    ' 。 。 。 

Catch ex1 As NotSupportedException 

     ' 

Catch ex2 As Exception 

     ' 

End Try 



     By bining multiple exception filters; you don’t need to figure out which kind of excep

tion is being thrown。 For example; without the filtering capabilities of a Catch block to catch  

NotSupportedException exception types; you would need to write this code: 



Try  

    Throw New NotSupportedException(〃There is no code〃) 

Catch ex As Exception 

    If ex Is NotSupportedException Then 

        '。 。 。 

    Else  

        Throw ex 

    End If 

End Try 



     Table 5…1 lists mon exception types in the System namespace that you can throw or  

can be thrown。 There are many more exceptions; and you can even generate your own excep

tions by subclassing  Exception。  


…………………………………………………………Page 150……………………………………………………………

128        CH AP T E R   5   ■    L E A R N IN G   AB OU T   V I SU A L   B AS IC   E X C E P TI ON   H AN D L IN G 



           Table 5…1。  mon Exception Types 



           Exception                                  Description 



           Exception                                  Plain…vanilla exception; a general container for all exceptions。  

                                                      When you get one of these exceptions; look at the Message  

                                                      property for the exact details。 If you throw this type of excep

                                                      tion; it is important to supply an easy…to…understand string to  

                                                      the exception constructor。 



           ArgumentException                          Thrown if you call a method and one of the arguments is not  

                                                      valid。 Typically; in the Message property you can find the  

                                                      problem with the arguments。 If this exception is thrown; it is  

                                                      because the contents of the argument are wrong。 



           ArgumentNullException                      Thrown if you call a method where one of the arguments is  

                                                      a Nothing value。 This could be because you are passing the  

                                                      Nothing value to the method or one of the arguments has a  

                                                      Nothing value。 



           ArgumentOutOfRangeException                Thrown if you call a method where one of the arguments is  

                                                      not in the expected range。 While this exception sounds similar  

                                                      to ArgumentException; it is more specialized and targets  

                                                      whether an argument is in an acceptable range。 Check the  

                                                      documentation of the method or the method implementation  

                                                      on what the acceptable range is。 If you throw this exception;  

                                                      note the valid range in the error message。 



           ArithmeticException                        Thrown if a mathematical error is generated。 



           DivideByZeroException                      Thrown if you attempt to divide by zero。 



           FormatException                            Thrown if the format of the parameter is not correct。 For  

                                                      example; if a method expects a number to be formatted with  

                                                      a period and you use a ma; an exception is generated。 



           IndexOutOfRangeException                   Thrown if you attempt to reference an index of an array that  

                                                      would be beyond the limits of the array。 This exception is  

                                                      thrown if you have not allocated an array an
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!