Try-Catch语句用法
Try
程序的正常操作部分,可能遇到错误。
Catch ex as Exception
错误处理
Finaly
无论是否产生异常,都会执行finally 块
a清理资源
b 要在try块或catch块末尾执行的其他操作。
End Try
-
细节:
Try-Catch语句可以省略Finally 块,可以提供任意多个Catch块,处理不同类型的错误。
返回语句如果写在Try-Catch中,Try 块中要返回,Catch也要返回。即都加上return语句。
-
Try-Catch与三层
不妨由底及表来说。
首先,DAL(Data Access Layer)数据访问层,不知道大家是怎么处理的,我是直接throw ex了。
然后,BLL(Business Logic Layer)业务逻辑层,因为DAL层直接throw ex,而DAL层抛出的通常是数据库连接异常、类型转化异常等,这类异常专业性较强,不适于跟用户交流,所以在BLL层catch到异常,不宜直接抛给用户(UI界面),这里我选择throw new exception(“用户能听懂的错误报告”)。
最后,UI层,这层直接和用户打交道。可catch到BLL层传出的错误,当然它也会catch到UI本身的错误。这层相当于BLL对于DAL,如果我们BLL也是throw ex,那么在UI层就应该throw new exception(“用户能听懂的错误报告”)了。
另外,Try-Catch之外的,UI调用BLL的Funtion所产生的返回值,如Boolean,在UI层,我们可以根据结果的不同,提示用户不同的信息。(true,msgbox(”成功”);false,msgbox(“失败”))