Technology Experience
.NET World

Quiz: perchè NullReferenceException ?

Questo metodo NetworkingSettings() viene eseguito all’avvio di un’applicazione su Pocket PC 2003 su cui è installato il Compact Framework 2.0. Lo scopo, come si vede dal codice che ho scritto, è quello di creare nel registro di configurazione del dispositivo una certa chiave dentro HKLMCommTcpIphosts. Purtroppo ho inserito queste righe nella versione finale del software, versione che è stata distribuita su una ventina di palmati Pocket PC, con il risultato di scatenare un’eccezione NullReferenceException non gestita.

1 public void NetworkingSettings() 2 { 3 RegistryKey key = Registry.LocalMachine.OpenSubKey(@"CommTcpIphosts ome_server"); 4 5 if (key == null) 6 { 7 key = Registry.LocalMachine.OpenSubKey(@"CommTcpIphosts", true); 8 key = key.CreateSubKey("nome_server"); 9 10 byte[] ip = new byte[4] 11 { 12 150, 80, 10, 196 13 }; 14 15 key.SetValue("ipaddr", ip, RegistryValueKind.Binary); 16 key.Close(); 17 } 18 }

Rispetto al codice in produzione ho cambiato alcune cose minimali: innanzitutto nome_server è un dominio valido; seconda cosa, i quattro bytes del byte[] hanno valori differenti. La mia domanda è: secondo voi, dove si scatena l’eccezione di cui sopra? Una volta individuato il punto (che io già conosco), la domanda successiva è: perchè?

Technorati Tags:  

Send to Kindle

Igor Damiani

La sua passione per l'informatica nasce nella prima metà degli anni '80, quando suo padre acquistò un Texas Instruments TI-99. Da allora ha continuato a seguire l'evoluzione sia hardware che software avvenuta nel corso degli anni. E' un utente, un videogiocatore ed uno sviluppatore software a tempo pieno. Igor ha lavorato e lavora anche oggi con le più moderne tecnologie Microsoft per lo sviluppo di applicazioni: .NET Framework, XAML, Universal Windows Platform, su diverse piattaforme, tra cui spiccano Windows 10 piattaforme mobile. Numerose sono le app che Igor ha creato e pubblicato sul marketplace sotto il nome VivendoByte, suo personale marchio di fabbrica. Adora mantenere i contatti attraverso Twitter e soprattutto attraverso gli eventi delle community .NET.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.