Megosztás a következőn keresztül:


Szinkron Configuration Manager hibák kezelése felügyelt kód használatával

Egy szinkron lekérdezésben kiváltott Configuration Manager hiba kezeléséhez észleli az SmsQueryException kivételt. Mivel ezt a kivételt a SMS_Exception] is észleli, a kivételt és az SmsConnectionException kivételt ugyanabban a fogási blokkban is elkaphatja.

Ha az SMS_Exception észlelt kivétel egy SmsQueryException, akkor a használatával elérheti a mögöttes vagy SMS_ExtendedExceptiona elemet__ExtendedException. Mivel a felügyelt SMS-szolgáltató kódtár nem burkolja ezeket a kivételeket, a Hozzáférésükhöz a System.Management névtér ManagementException objektumát kell használnia.

Megjegyzés:

Az egyértelműség kedvéért a jelen dokumentációban szereplő legtöbb példa egyszerűen csak a kivételek újradobása. Ha informatívabb kivételinformációkat szeretne, cserélje le őket az alábbi példára.

Szinkron lekérdezési hiba kezelése

  1. Írjon kódot az SMS-szolgáltató eléréséhez.

  2. Az alábbi példakóddal elkaphatja az SmsQueryException és az SmsConnectionException kivételt.

Példa

Az alábbi C#-példafüggvény nem létező SMS_Package csomagot próbál megnyitni. A kivételkezelőben a kód határozza meg, hogy milyen típusú hiba lépett fel, és megjeleníti annak adatait.

A mintakód meghívásával kapcsolatos információkért lásd: Configuration Manager Kódrészletek hívása.

public void ExerciseException(WqlConnectionManager connection)  
{  
    try  
    {  

        IResultObject package = connection.GetInstance(@"SMS_Package.PackageID='UNKNOWN'");  
        Console.WriteLine("Package Name: " + package["Name"].StringValue);  
        Console.WriteLine("Package Description: " + package["Description"].StringValue);  

    }  
    catch (SmsException e)  
    {  
        if (e is SmsQueryException)  
        {  
            SmsQueryException queryException = (SmsQueryException)e;  
            Console.WriteLine(queryException.Message);  

            // Get either the __ExtendedStatus or SMS_ExtendedStatus object and display various properties.  
            ManagementException mgmtExcept = queryException.InnerException as ManagementException;  

            if (mgmtExcept != null)  
            {  
                if (string.Equals(mgmtExcept.ErrorInformation.ClassPath.ToString(), "SMS_ExtendedStatus", StringComparison.OrdinalIgnoreCase) == true)  
                {  
                    Console.WriteLine("Configuration Manager provider exception");  
                }  

                else if (string.Equals(mgmtExcept.ErrorInformation.ClassPath.ToString(), "__ExtendedStatus", StringComparison.OrdinalIgnoreCase) == true)  
                {  
                    Console.WriteLine("WMI exception");  
                }  
                Console.WriteLine(mgmtExcept.ErrorCode.ToString());  
                Console.WriteLine(mgmtExcept.ErrorInformation["ParameterInfo"].ToString());  
                Console.WriteLine(mgmtExcept.ErrorInformation["Operation"].ToString());  
                Console.WriteLine(mgmtExcept.ErrorInformation["ProviderName"].ToString());  
            }  

        }  
        if (e is SmsConnectionException)  
        {  
            Console.WriteLine("There was a connection error :" + ((SmsConnectionException)e).Message);  
            Console.WriteLine(((SmsConnectionException)e).ErrorCode);  
        }  
    }  
}  

A példametódus a következő paraméterekkel rendelkezik:

Paraméter Típus Leírás
connection - WqlConnectionManager Érvényes kapcsolat a szolgáltatóval.

A kód fordítása

Ehhez a C#-példához a következőre van szükség:

Névterek

Rendszer

System.Collections.Generic

System.Text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

System.Management

System.ComponentModel

Összeszerelés

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

System.Management

Robusztus programozás

A hibakezeléssel kapcsolatos további információkért lásd: A Configuration Manager hibák ismertetése.

Lásd még

Tudnivalók a Configuration Manageraszinkron hibák felügyelt kód használatával történő kezelésével kapcsolatos hibákról