博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重构机房收费系统你要用的——异常处理和抛出异常(try catch finally)——(vb.net)...
阅读量:5301 次
发布时间:2019-06-14

本文共 1808 字,大约阅读时间需要 6 分钟。

你能保证你的程序不会出问题吗?

不能

当你的程序执行到某个地方发生了你不想要的结果。你是否想让它一错再错?

不想

你是否想让你的程序占着茅坑不拉屎?

不想

你是否想知道你的程序出错的原因?

看了了这4个问题之后。假设你的回答和我的一致,那么请看下文

trycatch finally的使用方法:

  1. try  
  2. '你想要写的程序  
  3. catch  
  4. '捕获你想写的程序里面全部发生的异常  
  5. finally  
  6. '不管发生还是不发生异常,你都想运行的代码 

演示样例:

  1. Dim Update_Info As String = "update " & Table & "set " & FieldAndContent    '改动的sql语句  
  2.             Dim DBConnectStr As New ConnectStringDAL    '数据库连接字符串  
  3.             Dim DBConnection As New SqlConnection(DBConnectStr.ConnectString)   '数据库连接对象  
  4.   
  5.             DBConnection.Open() '连接数据库  
  6.   
  7.             Dim DBCmd As New SqlCommand(Update_Info, DBConnection)  '运行改动语句  
  8.   
  9.             Result = "成功改动了:" & DBCmd.ExecuteNonQuery & "行"  
  10.         Catch ex As Exception  
  11.             Result = "在改动数据过程中发生了错误:" & ex.Message  
  12.     MsgBox Result
  13.     finally  

        DBConnection.Close

倘若你的程序在连接数据库的时候出错导致连接失败,假设没有不论什么你能够參考的提示信息。那么你可能会觉得是查询语句错了。而不是sa用户的登录password错误了。而如上程序,假设

DBConnection.Open() '连接数据库

这里出错了,那么这句完了之后她就直接跳转到catch ex as exception那里运行它以下的语句,通过调用ex.message,它会返回错误的原因,可能是username或password错误了。然后你能够在finally那里写上关闭数据库连接的代码,这样就能够防止程序遇到错误直接跳出程序。而不释放资源(相当于占着茅坑不拉屎)。

回到刚才的第二个问题,当程序发生了你不想要的结果。他会一直执行下去。刚才说遇到错误它会跳出来。可是不想要的结果如本来这个变量A应该被赋值得到3,可是它却是4,而这个时候它是不会直接跳出的,由于这不是什么异常的错误,可能是逻辑上的错误。依照分层的思想。假设发生在UI层,我们为了让UI曾职责单一,不进行不必要的推断语句,仅仅负责用户操作的响应、用户数据的传递和各种显示的功能,逻辑上不做太多的推断和处理,这时候你能够使用抛出异常来使你的程序发生异常,直接跳到catch那里。

比方上面的代码

  1.     Dim Update_Info As String = "update " & Table & "set " & FieldAndContent    '改动的sql语句  
  2.             Dim DBConnectStr As New ConnectStringDAL    '数据库连接字符串  
  3.             Dim DBConnection As New SqlConnection(DBConnectStr.ConnectString)   '数据库连接
  4.     Dim DBCmd As New SqlCommand(Update_Info, DBConnection)  '运行改动语句
  5.     Result = "成功改动了:" & DBCmd.ExecuteNonQuery & "行"
  6.     Catch ex As Exception
  7.     Result = "在改动数据过程中发生了错误:" & ex.Message

在连接数据库之前抛出了异常,注意。这个异常是你人为 的制造的。它也属于异常的一种类型,所以这个时候它就不运行连接数据库以及以下的代码直到catch为止,他会运行catch以下的代码,并显示异常的原因。值得注意的是finally后面的语句,无论程序是否会出现异常。它肯定是会运行的,一般自己衡量一下该运行什么程序好。一般都会写一些释放资源的代码。

转载于:https://www.cnblogs.com/llguanli/p/6883190.html

你可能感兴趣的文章
属性选择符
查看>>
九章算法系列(#3 Binary Tree & Divide Conquer)-课堂笔记
查看>>
添加自定义的搜索引擎到chrome浏览器的右键菜单中
查看>>
mysql 事务提交过程
查看>>
SharedPreferences用法
查看>>
javascript去掉空格
查看>>
项目管理中相关概念
查看>>
C# 以嵌入到窗体的方式打开外部exe
查看>>
js系统类型的判断
查看>>
转码网址
查看>>
string类的写时拷贝
查看>>
痛点分析及项目设想
查看>>
OCIEnvNlsCreate 失败,返回代码为 -1,但错误消息文本不可用
查看>>
JavaScript之原生接口类设计
查看>>
query_phase_execution_exception
查看>>
MySQL进阶12-- 数据类型介绍: 数值型/字符型/日期型-- 正负溢出保护/枚举型/set型/时间戳...
查看>>
[ACM_水题] UVA 12502 Three Families [2人干3人的活后分钱,水]
查看>>
ThreadLocal的理解
查看>>
你不知道的CSS
查看>>
HashMap深度解析(一)
查看>>