Laden...

Registry Eintrag prüfen -> null Exception

Erstellt von Krumnix vor 3 Jahren Letzter Beitrag vor 3 Jahren 340 Views
K
Krumnix Themenstarter:in
129 Beiträge seit 2018
vor 3 Jahren
Registry Eintrag prüfen -> null Exception

Hallo zusammen,

ich möchte gerne einen Eintrag in der Registry auswerten. Das funktioniert.
Wenn jedoch der Eintrag nicht vorhanden ist, dann bekomme ich eine null Exception.
Diese möchte ich gerne auswerten, ohne das er in einen Fehler geht (try...).

if (targetRegistryKey.GetValue(registryEntry).ToString() is null)
                    return false;
                return true;

Das funktioniert nicht. Möchte jetzt aber nicht im catch-Teil meine weitere Programmierung umsetzen.

Vielleicht gibs was anderes, mit dem ich Einträge in der Registry nutzen kann und wenn diese nicht da sind ich keine null bekomme?!

Danke für eure Tipps.

T
2.223 Beiträge seit 2008
vor 3 Jahren

Liegt daran, dass du dn Rückgabewert von GetValue nicht auf Null prüfst.
Wenn dieser Null ist, knallt das ToString!
Wenn du auch targetRegistryKey nciht auf Null prüfst, knallt dieser ggf. ebenfalls vor dem Aufruf von GetValue.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

D
261 Beiträge seit 2015
vor 3 Jahren

Nur weil man ein null als Rückgabe erhält, gibt es noch keine NullReferenceException.
Du musst einfach nur die Rückgabe auf null überprüfen, bevor du sie weiterverarbeitest.
Du rufst aber auf dem Rückgabewert von targetRegistryKey.GetValue das ToString() auf.


if (targetRegistryKey.GetValue(registryEntry) == null)
{
    return false;
}
return true;

oder kürzer


return targetRegistryKey.GetValue(registryEntry) != null;

Das ToString() ergibt in deinem Schnippsel übrigens keinen Sinn, deswegen hab ich es entfernt.

5.658 Beiträge seit 2006
vor 3 Jahren

Siehe dazu auch gleich das erste Beispiel in [FAQ] NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt "Wie die NullReferenceException entsteht"

Weeks of programming can save you hours of planning