巧用例外处理多返回值问题
写程序的时候,我们很有可能碰到这样一种情况,就是写一个方法时,它需要返回多个结果。就拿学生上机为例吧。当学生上机时,我们输入学生卡号,然后调用“上机”这个函数,而上机这个函数就需要有多个返回值,比如:输入的卡号不存在、输入的卡号正在上机、输入的卡号余额不足、上机成功等等,那么我们该如何处理这种情况呢? 以前我处理这种情况是通过返回一个int类型的变量来实现的,具体实现过程如下:
IF 卡号不存在 THEN 返回 0 ELSEIF 卡号正在上机 THEN 返回 1 ELSEIF 卡号余额不足 THEN 返回 2 ELSEIF 上机成功 THEN 返回 3 ……………… ENDIF
调用该上机函数,并根据结果给用户提示,实现过程如下:
IF 返回 0 THEN 提示用户:卡号不存在 ELSEIF 返回 1THEN 提示用户:卡号正在上机 ELSEIF 返回 2 THEN 提示用户:卡号余额不足 ELSEIF 返回 3 THEN 提示用户:上机成功 ……………… ENDIF
这样虽然可以实现功能,但是总感觉不是很好,毕竟返回的值比较多,而且必须知道返回的值都代表什么,这样就给我们带来了好多麻烦。那么有没有更好的实现办法呢? 下面我给大家介绍一下如何用例外处理这样情况:
上机函数部分(下面里用到的是VB.Net里的一些知识): If 没有该卡号的信息 Then Throw NewApplicationException("该卡还没有注册") End If
If 学生正在上机 Then Throw NewApplicationException("该卡号正在上机") End If
If 学生余额小于设置的最少金额Then Throw NewApplicationException("该卡金额不足,请充值") End If
调用函数部分: Try 调用上机函数 Catch ex AS Exception MsgBox(ex.Message) 显示给用户具体的错误 End Try
这样写的好处就是不用再判断具体的情况,所有的情况都通过错误处理程序体现给用户了,自我感觉方便了不少。
PS:用例外虽然解决了这个问题,但是总感觉好像有点不妥,毕竟是用错误处理解决的。一旦跟“错误”有了关系,总让人有种不爽的感觉,但本人又说不出到底有什么不好,还望大家多多指教。当然,如果您有什么好的实现方法,可以留下和大家分享一下! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |