【发布时间】:2010-11-06 06:09:54
【问题描述】:
我今天遇到了一个有趣的困境。我有一个处理信息并检查重复值的函数,然后返回下一个不重复的数字。所以,我有这样的事情:
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,还是有办法解决这个问题?
【问题讨论】:
标签: vb.net exception try-catch structured-exception