巧用例外处理多返回值问题

前端之家收集整理的这篇文章主要介绍了巧用例外处理多返回值问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

写程序的时候,我们很有可能碰到这样一种情况,就是写一个方法时,它需要返回多个结果。就拿学生上机为例吧。当学生上机时,我们输入学生卡号,然后调用“上机”这个函数,而上机这个函数就需要有多个返回值,比如:输入的卡号不存在、输入的卡号正在上机、输入的卡号余额不足、上机成功等等,那么我们该如何处理这种情况呢?

以前我处理这种情况是通过返回一个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:用例外虽然解决了这个问题,但是总感觉好像有点不妥,毕竟是用错误处理解决的。一旦跟“错误”有了关系,总让人有种不爽的感觉,但本人又说不出到底有什么不好,还望大家多多指教。当然,如果您有什么好的实现方法,可以留下和大家分享一下!

猜你在找的VB相关文章