오늘 나는 흥미로운 딜레마에 부딪쳤다. 나는 정보를 처리하고 중복 된 값을 검사하는 함수를 가지고 있으며, 중복되지 않은 다음 숫자를 리턴한다.잡기, 처리, 예외 재발생?
을 :이처럼, 더 이상 중복이없는 때까지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
을 잘못 생각하거나이 문제를 해결할 방법이 있습니까?
을이 Int32.TryParse' 등 실제로 훨씬 건전한 방식이며, 모방'. (7 년 후, 나는 알고있다, 그러나 아직도이 영업 이익의 일한다고 선택의 경로). – Abel