| 

.NET C# Java Javascript Exception

0
Ich hab hier folgende Funktion:

public static bool CanOpenSubKey(RegistryKey k, string subkey)
{
try
{
k.OpenSubKey(subkey);
return true;
}
catch (Exception)
{
return false;
}
}


Diese soll true liefern, wenn man einen Registryschlüssel öffnen kann und false, falls nicht.

Jetzt will ich diese Funktion natürlich auch testen:
RegistryKey k = Registry.ClassesRoot;
string s = "\\.ex\\a";
Assert.AreEqual(false, CanOpenSubKey(k, s));


Bei so einem Test meckert er, dass die Funktion ein true liefert, sie sollte aber ein false liefern (weil es so einen Schlüssel in der Registry überhaupt nicht gibt).

Ein anderes Beispiel wäre:
RegistryKey k = Registry.ClassesRoot;
string s = "asdgefgrerfnsbzerggkjtbgisufhkgjernkl";
Assert.AreEqual(false, CanOpenSubKey(k, s));


Was ist da falsch?
News:
22.09.2011
starki 603 1 8
1 Antwort
0
OpenSubKey erzeugt keine Exception, wenn ein Schlüssel nicht gefunden wurde.

In der Hilfe http://msdn.microsoft.com/en-us/library/z9f66s0a(v=VS.85).aspx steht ganz klar:
"If the specified subkey cannot be found, then a null reference (Nothing in Visual Basic) is returned."
22.09.2011
Peter Enz 76 3

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH