微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

原文地址:https://www.jb51.cc/vb/260167.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐