Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Om du vill hantera ett Configuration Manager fel som uppstår i en synkron fråga fångar du SmsQueryException undantaget. Eftersom det här undantaget också fångas av SMS_Exception] kan du fånga det och SmsConnectionException-undantaget i samma catch-block.
Om undantaget som fångas i en SMS_Exception är en SmsQueryException kan du använda det för att komma åt den underliggande __ExtendedException eller SMS_ExtendedException. Eftersom det hanterade SMS-providerbiblioteket inte omsluter dessa undantag måste du använda namnområdet System.Management ManagementException för att komma åt dem.
Obs!
För tydlighetens skull återskapar de flesta exemplen i den här dokumentationen helt enkelt undantag. Du kan ersätta dem med följande exempel om du vill ha mer informativ information om undantag.
Så här hanterar du ett synkront frågefel
Skriv kod för att få åtkomst till SMS-providern.
Använd följande exempelkod för att fånga upp SmsQueryException och SmsConnectionException undantag.
Exempel
Följande C#-exempelfunktion försöker öppna ett paket som inte finns SMS_Package . I undantagshanteraren avgör koden vilken typ av fel som har utlösts och visar dess information.
Information om hur du anropar exempelkoden finns i Anropa Configuration Manager kodfragment.
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);
}
}
}
Exempelmetoden har följande parametrar:
| Parameter | Typ | Beskrivning |
|---|---|---|
connection |
- WqlConnectionManager |
En giltig anslutning till leverantören. |
Kompilerar koden
Det här C#-exemplet kräver:
Namnområden
System
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
System.Management
System.ComponentModel
Montering
Microsoft.ConfigurationManagement.ManagementProvider
adminui.wqlqueryengine
System.Management
Robust programmering
Mer information om felhantering finns i Om Configuration Manager fel.
Se även
Om felSå här hanterar du asynkrona fel i Configuration Manager med hjälp av hanterad kod