Tengo un método que toma una ruta de directorio como una cadena. Al comienzo del método, comprueba si existe esta ruta y, si no, debería lanzar una excepción. Estoy pensando que debería lanzar un DirectoryNotFoundException
o algo así en lugar de un ArgumentException
menos específico.C#: ¿Debo arrojar una ArgumentException o una DirectoryNotFoundException?
He leído la documentación de MSDN de ese DirectoryNotFoundException
y se dice que
DirectoryNotFoundException
utiliza elHRESULT COR_E_DIRECTORYNOTFOUND
que tiene el valor0x80070003
.
No sé lo que eso significa exactamente, y se ve un poco de miedo ... debería todavía tirar esa excepción, o debería atenerse a un habitual ArgumentException
? ¿O debería seguir el ArgumentException
simplemente porque es un argumento del que me quejo? ¿O?
public void MakeFunOf(string path)
{
if(!Directory.Exists(path))
throw new WhatException();
TellJokeAbout(path);
PointAndLaughAt(path);
}
+1 para codesnippet – Natrium
No tenga miedo de HRESULT excepción, valor realmente toda excepción en .NET ha hresult su interior. – arbiter
¿Qué hace HRESULT? – Svish