我今天遇到了一个有趣的困境。我有一个处理信息并检查重复值的函数,然后返回下一个不重复的数字。所以,我有这样的事情:
Public Function GetNextNonDuplicateNumber(NumberToCheck as Long) as Long
//the non-duplicate the function will return
Dim NonDuplicate as Long
If CheckForDuplicate(NumberToCheck) = True Then
Throw New DuplicateException()
Else
NonDuplicate = NumberToCheck
End If
End Function
然后在函数的底部,我有一个 catch 块,它通过递增处理重复项,直到我不再有重复项,如下所示:
Catch ex as DuplicateException
NonDuplicate = IncrementToNonDuplicateValue(NumberToCheck)
Throw ex
Return NonDuplicate
End Function
如您所见,我想专门处理异常,但我也想在完成后抛出它,因为我想提醒函数外的其他代码。
问题是简单地将它扔出带有null
值的函数。我是在想一个try/catch
错误的方法,还是有办法解决这个问题?