Название может не совсем объяснить, на что я действительно пытаюсь попасть, не мог подумать о способе описания того, что я имею в виду.Должен ли я считать, что аргументы не являются нулевыми, прежде чем использовать их в функции?
Мне было интересно, правильно ли проверять аргументы, которые функция принимает для пустых значений или пустые перед их использованием. У меня есть эта функция, которая просто завершает создание хэша.
Public Shared Function GenerateHash(ByVal FilePath As IO.FileInfo) As String
If (FilePath Is Nothing) Then
Throw New ArgumentNullException("FilePath")
End If
Dim _sha As New Security.Cryptography.MD5CryptoServiceProvider
Dim _Hash = Convert.ToBase64String(_sha.ComputeHash(New IO.FileStream(FilePath.FullName, IO.FileMode.Open, IO.FileAccess.Read)))
Return _Hash
End Function
Как вы можете видеть, что я просто берет IO.Fileinfo в качестве аргумента, в начале функции я проверяю, чтобы убедиться, что это не что иное.
Мне интересно, эта хорошая практика, или я просто позволю ей добраться до фактического хэшира, а затем выбросить исключение, потому что это null.?
Спасибо.
и если вход неправильный, и выход прав ... hrm .. это тоже не очень хорошо. – stephenbayer 2008-10-14 03:10:03