Try Catch能帮你做什么(3)?

在之前的例子中,都是一个Try配着一个Catch,其实一个Try可以搭配很多Catch,这样子的作法,可以依照不同的例外状况做不同的处理。


          在之前的例子中,都是一个Try配着一个Catch,其实一个Try可以搭配很多Catch,这样子的作法,可以依照不同的例外状况做不同的处理。

比方说,在Try区块中处理事情包括了Socket和数据连结,而我们希望能够在补捉到 SockectExecptionSqlException 时采取不同的应变方案,Try Catch区块就可以这样写:
Try
           
Catch socketEX As SocketException
           ‘如果发生Socket Execption该做的事
Catch SqlEx As SqlException
            ‘如果发生Sql Execption该做的事
Catch ex As Exception
             ‘如果发生其它 Execption该做的事
 
Finally
 
End Try
 
所以当发生Socket Execption,就会执行“如果发生Socket Execption该做的事”;但不会执行“如果发生其它 Execption该做的事”和“如果发生Sql Execption该做的事”。
 
这个Catch的排列方式是有顺序的,当两个Catch有相关的时候,范围小的Execption一定要在前面,以前面的例子,如果我们改成
Try
 
Catch ex As Exception
 
Catch socketEX As SocketException
 
Catch SqlEx As SqlException
 
Finally
 
End Try
 
这样编译会发出警告,VB.NET甚至不需编译就会出现红线,告诉你Catch socketEX As SocketException与 Catch SqlEx As SqlException 这两个区块执行不到,因为Catch ex As Exception 几乎会栏截到所有的例外。
 
Try Catch是不是很有趣呢?善用Try Catch不仅是是在处理与例外相关的事情,如果多加注意Exception带给我们的消息,对于程序结构的改善与程序撰写也会有所助益。

原文:大专栏  Try Catch能帮你做什么(3)?


猜你喜欢

转载自www.cnblogs.com/chinatrump/p/11458547.html
今日推荐