写程序的时候,我们很有可能碰到这样一种情况,就是写一个方法时,它需要返回多个结果。就拿学生上机为例吧。当学生上机时,我们输入学生卡号,然后调用“上机”这个函数,而上机这个函数就需要有多个返回值,比如:输入的卡号不存在、输入的卡号正在上机、输入的卡号余额不足、上机成功等等,那么我们该如何处理这种情况呢?
以前我处理这种情况是通过返回一个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
End Try
这样写的好处就是不用再判断具体的情况,所有的情况都通过错误处理程序体现给用户了,自我感觉方便了不少。
PS:用例外虽然解决了这个问题,但是总感觉好像有点不妥,毕竟是用错误处理解决的。一旦跟“错误”有了关系,总让人有种不爽的感觉,但本人又说不出到底有什么不好,还望大家多多指教。当然,如果您有什么好的实现方法,可以留下和大家分享一下!