El título puede que no explique realmente a qué estoy tratando de llegar, realmente no podría pensar en una manera de describir lo que quiero decir.¿Debo asegurarme de que los argumentos no sean nulos antes de usarlos en una función?
Me preguntaba si es una buena práctica verificar los argumentos que una función acepta para nulos o vacíos antes de usarlos. Tengo esta función que simplemente envuelve algo de creación de hash como tal.
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
Como se puede ver que sólo se necesita un IO.Fileinfo como argumento, en el inicio de la función estoy comprobando para asegurarse de que no hay nada.
Me pregunto si esta es una buena práctica o debería dejar que llegue al hasher real y luego lanzar la excepción porque es nula.
Gracias.
y si la entrada es incorrecta y la salida es correcta ... hrm ... eso tampoco es tan bueno. – stephenbayer