Wie kann ich vermeiden, dass die null-Objekt-Verweis Fehler
Habe ich die Funktion init, die läuft auf die creationComplete der Anwendung. Die init-Aufrufe get_login_share_object Funktion, in der die Objekte erstellt werden, die null sind.
Nun mein problem ist, dass ich eine null-Objektreferenz-Fehler, die auf die Warnung in der "init()". Wie kann ich es vermeiden. Ist es möglich, dass ich einen check, um zu sehen, wenn die Objekte null sind, das Programm sollte einfach überspringen Lesen der Objekte.
private function init():void
{
var stored_credentials:Object = get_login_share_object();
Alert.show(stored_credentials.check_remember +" "+ stored_credentials.alias +" "+ stored_credentials.password );
}
private function get_login_share_object():Object
{
//create or retrieve the current shared object
var so:SharedObject = SharedObject.getLocal("loginData","/");
var dataToLoad:ByteArray = so.data.ws_creds;
if(!dataToLoad)
return null;
//read in our key
var aes_key:String = ServerConfig.aes_key;
var key:ByteArray = new ByteArray();
key = Base64.decodeToByteArray(aes_key);
//read in our encryptedText
var encryptedBytes:ByteArray = new ByteArray();
dataToLoad.readBytes(encryptedBytes);
//decrypt using 256b AES encryption
var aes:ICipher = Crypto.getCipher("simple-aes128-ctr", key, Crypto.getPad("pkcs5"));
aes.decrypt(encryptedBytes);
encryptedBytes.position = 0;
var obj:Object = new Object();
obj.alias = encryptedBytes.readUTF();
obj.password = encryptedBytes.readUTF();
obj.check_remember = encryptedBytes.readUTF();
return obj;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konnte man überprüfen, dass für null-so:
Sollten Sie herausfinden, warum diese Werte sind null und fix, die ersten. Im Allgemeinen, wenn Sie erwarten einen Wert, es sollte nicht null sein.
Wenn es wirklich wird erwartet, dass einige dieser Werte null sind, dann ja, können Sie überprüfen Sie Sie zuerst in zwei Arten:
oder
Dein problem ist hier:
Wenn es keine Daten zu laden, die Sie zurückgeben, eine null. Also, wenn Sie versuchen, Zugriff auf die zurückgegebenen Eigenschaften des Objekts später, erhalten Sie die null-Objekt-Verweis Fehler, denn Sie verweisen auf ein null-Objekt. 🙂
Gibt es ein paar einfache Lösungen. Sie können überprüfen, ob der Rückgabewert null ist, bevor Sie versuchen, auf irgendwelche Eigenschaften etwa so:
Oder Sie können aufhören, die Rückgabe einer null von Ihrem get_login_share_object Funktion. Was Sie zurückkehren, stattdessen ist völlig bis zu Ihnen, so stellen Sie sicher, es gibt ein Objekt mit allen Eigenschaften, die Sie verweisen.