這是我用來從我的用戶檢索MAC地址的方法。方法不會拋出異常
要重現一個MAC地址不能檢索的場景,我故意禁用了我的網卡。 ,
public static string returnMAC1()
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select MACAddress, PNPDeviceID FROM Win32_NetworkAdapter WHERE MACAddress IS NOT NULL AND PNPDEVICEID IS NOT NULL");
ManagementObjectCollection mObject = searcher.Get();
foreach (ManagementObject obj in mObject)
{
string pnp = obj["PNPDeviceID"].ToString();
if (pnp.Contains("PCI\\"))
{
string mac = obj["MACAddress"].ToString();
mac = mac.Replace(":", string.Empty);
if (string.IsNullOrEmpty(mac))
{
throw new System.Exception("Invalid PCI MAC");
}
return mac;
}
}
return string.Empty;
}
catch (Exception ex)
{
Console.WriteLine("Error Message: " + ex.Message);
}
return string.Empty;
}
與此說,儘管地方我的異常處理程序拋出一個錯誤,我無法得到它拋出一個錯誤,儘管我的輸出是這樣的:這不應該返回一個MAC地址,使用這個方法:
注:應該說:Error Message: Invalid PCI MAC
。
有什麼辦法來檢查「空白」是什麼?顯然它不是""
或string.Empty
或null
或null
。
嘗試'string.IsNullOrWhiteSpace()'?因爲它可能是一個(或更多)空間。 –
您可以設置一個斷點並檢查該值。也就是說,是否有可能在'mObject'中沒有項目?是否有可能存在_are_值,但是沒有一個「PNPDeviceID」包含「PCI \\」? – canon
@ChiChan我也嘗試過 - 沒有投擲。 @canon,讓我試試'mObject' – theGreenCabbage