Objeto SWbemLastError
Os métodos e as propriedades do objeto SWbemLastError contêm e manipulam objetos de erro. Os métodos e as propriedades desse objeto são exatamente iguais aos do objeto SWbemObject, mas são usados para conter informações de erro em vez de informações de classe do WMI. Esse objeto pode ser criado pela chamada CreateObject do VBScript.
Você pode criar um objeto de erro SWbemLastError para inspecionar as informações de erro estendidas associadas a uma chamada de método anterior. Se as informações de erro não estiverem disponíveis, uma tentativa de criar um objeto de erro falhará. Se a chamada for bem-sucedida e um objeto de erro for retornado, o status do objeto será redefinido. Novas tentativas de recuperar um objeto de erro falharão até que ocorra um novo erro. Se você fizer uma chamada assíncrona que falhe, um objeto SWbemLastError poderá ser retornado a você pelo evento SWbemSink.OnCompleted no parâmetro objWbemErrorObject.
Membros
O objeto SWbemLastError tem estes tipos de membros:
Métodos
O objeto SWbemLastError tem esses métodos.
Método | Descrição |
---|---|
Associators_ | Não usado. O objeto SWbemObject fornece o mesmo método. |
AssociatorsAsync_ | Não usado. O objeto SWbemObject fornece o mesmo método. |
Clone_ | Cria uma nova cópia do objeto atual. |
CompareTo_ | Testa dois objetos quanto à igualdade. |
Delete_ | Não usado. O objeto SWbemObject fornece o mesmo método. |
DeleteAsync_ | Não usado. O objeto SWbemObject fornece o mesmo método. |
ExecMethod_ | Não usado. O objeto SWbemObject fornece o mesmo método. |
ExecMethodAsync_ | Não usado. O objeto SWbemObject fornece o mesmo método. |
GetObjectText_ | Recupera a representação textual do objeto escrito com a sintaxe MOF. |
Instances_ | Não usado. O objeto SWbemObject fornece o mesmo método. |
InstancesAsync_ | Não usado. O objeto SWbemObject fornece o mesmo método. |
Put_ | Não usado. O objeto SWbemObject fornece o mesmo método. |
PutAsync_ | Não usado. O objeto SWbemObject fornece o mesmo método. |
References_ | Não usado. O objeto SWbemObject fornece o mesmo método. |
ReferencesAsync_ | Não usado. O objeto SWbemObject fornece o mesmo método. |
SpawnDerivedClass_ | Não usado. O objeto SWbemObject fornece o mesmo método. |
SpawnInstance_ | Não usado. O objeto SWbemObject fornece o mesmo método. |
Subclasses_ | Não usado. O objeto SWbemObject fornece o mesmo método. |
SubclassesAsync_ | Não usado. O objeto SWbemObject fornece o mesmo método. |
Propriedades
O objeto SWbemLastError tem estas propriedades.
Propriedade | Tipo de acesso | Descrição |
---|---|---|
Derivation_ |
Somente leitura |
Não usado. O objeto SWbemObject fornece o mesmo método. |
Methods_ |
Somente leitura |
Não usado. O objeto SWbemObject fornece o mesmo método. |
Path_ |
Somente leitura |
Contém um objeto SWbemObjectPath que representa o caminho do objeto da classe ou da instância atual. |
Properties_ |
Somente leitura |
Representa a coleção de propriedades do objeto SWbemLastError. Essa propriedade é um objeto SWbemPropertySet. |
Qualifiers_ |
Somente leitura |
Não usado. O objeto SWbemObject fornece o mesmo método. |
Security_ |
Somente leitura |
Não usado. O objeto SWbemObject fornece o mesmo método. |
Exemplos
O exemplo de VBScript a seguir demonstra como inspecionar erro e informações de objeto de erro.
On Error Resume Next
'Ask for non-existent class to force error
Set t_Service = GetObject("winmgmts://./root/default")
Set t_Object = t_Service.Get("Nosuchclass000")
if Err = 0 Then
WScript.Echo "Got a class"
Else
WScript.Echo ""
WScript.Echo "Err Information:"
WScript.Echo ""
WScript.Echo " Source:", Err.Source
WScript.Echo " Description:", Err.Description
WScript.Echo " Number", "0x" & Hex(Err.Number)
'Create the last error object
set t_Object = CreateObject("WbemScripting.SWbemLastError")
WScript.Echo ""
WScript.Echo "WMI Last Error Information:"
WScript.Echo ""
WScript.Echo " Operation:", t_Object.Operation
WScript.Echo " Provider:", t_Object.ProviderName
strDescr = t_Object.Description
strPInfo = t_Object.ParameterInfo
strCode = t_Object.StatusCode
if (strDescr <> nothing) Then
WScript.Echo " Description:", strDescr
end if
if (strPInfo <> nothing) Then
WScript.Echo " Parameter Info:", strPInfo
end if
if (strCode <> nothing) Then
WScript.Echo " Status:", strCode
end if
WScript.Echo ""
Err.Clear
set t_Object2 = CreateObject("WbemScripting.SWbemLastError")
if Err = 0 Then
WScript.Echo "Got the error object again - this shouldn't have happened!"
Else
Err.Clear
WScript.Echo "Couldn't get last error again - as expected"
End if
End If
O exemplo de Perl a seguir demonstra como inspecionar erro e informações de objeto de erro.
use strict;
use Win32::OLE;
my ( $t_Service, $t_Object, $t_Object2, $strDescr, $strPInfo, $strCode );
# Close STDERR file handle to eliminate redundant error message
close(STDERR);
# Ask for non-existent class to force error
$t_Service = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\default");
$t_Object = $t_Service->Get("Nosuchclass000");
if (defined $t_Object)
{
print "Got a class\n";
}
else
{
print "\nErr Information:\n\n";
print Win32::OLE->LastError, "\n";
# Create the last error object
$t_Object = new Win32::OLE 'WbemScripting.SWbemLastError';
print "\nWMI Last Error Information:\n\n";
print " Operation: ", $t_Object->{Operation}, "\n";
print " Provider: ", $t_Object->{ProviderName}, "\n";
$strDescr = $t_Object->{Description};
$strPInfo = $t_Object->{ParameterInfo};
$strCode = $t_Object->{StatusCode};
if (defined $strDescr)
{
print " Description: ", $strDescr, "\n";
}
if (defined $strPInfo)
{
print " Parameter Info: ", $strPInfo, "\n";
}
if (defined $strCode)
{
print " Status: ", $strCode, "\n";
}
print "\n";
$t_Object2 = new Win32::OLE 'WbemScripting.SWbemLastError';
if (defined $t_Object2)
{
print "Got the error object again - this shouldn't have happened!\n";
}
else
{
print "Couldn't get last error again - as expected\n";
}
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows Vista |
Servidor mínimo com suporte |
Windows Server 2008 |
Cabeçalho |
|
Biblioteca de tipos |
|
DLL |
|
CLSID |
CLSID_SWbemLastError |
IID |
IID_ISWbemLastError |