Hata İşleme Stratejileri
Arabirim yöntemleri sanal olduğundan, çağıranın herhangi bir çağrıdan döndürülebilecek tüm değer kümesini bilmesi mümkün değildir. Bir yöntemin bir uygulaması beş değer döndürebilir; başka bir değer sekiz döndürebilir.
Belgelerde her yöntem için döndürülebilecek ortak değerler listelenir; bunlar, özel anlamları olduğundan kodunuzda denetlemeniz ve işlemeniz gereken değerlerdir. Diğer değerler döndürülebilir, ancak anlamlı olmadığından, bunları işlemek için özel kod yazmanız gerekmez. Sıfır veya sıfır olmayan için basit bir denetim yeterlidir.
HRESULT Değerleri
COM işlevlerinin ve yöntemlerinin dönüş değeri HRESULTdeğeridir. Bazı HRESULT'lerin değerleri, tüm yinelemeleri ve sistem hata kodlarıyla çakışmayı ortadan kaldırmak için COM'da değiştirildi. Sistem hata kodlarını yineleyenler FACILITY_WIN32 olarak değiştirildi ve çakışanlar FACILITY_NULL kalır. Yaygın HRESULT değerleri ve değerleri aşağıdaki tabloda listelenmiştir.
HRESULT | Değer | Açıklama |
---|---|---|
E_ABORT |
0x80004004 |
Belirtilmeyen bir hata nedeniyle işlem durduruldu. |
E_ACCESSDENIED |
0x80070005 |
Genel erişim reddedildi hatası. |
E_FAIL |
0x80004005 |
Belirtilmeyen bir hata oluştu. |
E_HANDLE |
0x80070006 |
Geçersiz bir tanıtıcı kullanıldı. |
E_INVALIDARG |
0x80070057 |
Bir veya daha fazla bağımsız değişken geçersiz. |
E_NOINTERFACE |
0x80004002 |
QueryInterface yöntemi istenen arabirimi tanımadı. Arabirim desteklenmiyor. |
E_NOTIMPL |
0x80004001 |
yöntemi uygulanmadı. |
E_OUTOFMEMORY |
0x8007000E |
yöntemi gerekli belleği ayıramadı. |
E_PENDING |
0x8000000A |
İşlemi tamamlamak için gereken veriler henüz kullanılamıyor. |
E_POINTER |
0x80004003 |
Geçersiz bir işaretçi kullanıldı. |
E_UNEXPECTED |
0x8000FFFF |
Olağanüstü bir hata oluştu. |
S_FALSE |
0x00000001 |
yöntemi başarılı oldu ve FALSE boole değerini döndürdü. |
S_OK |
0x00000000 |
Yöntemi başarılı oldu. Boole dönüş değeri bekleniyorsa, döndürülen değer TRUE . |
Ağ Hataları
Hata kodunun ilk dört basamağı 8007 ise, bu bir sistem veya ağ hatası olduğunu gösterir. Bu tür hataların kodunu çözmek için net komutunu kullanabilirsiniz. Hatanın kodunu çözmek için, önce onaltılık hata kodunun son dört basamağını ondalık olarak dönüştürün. Ardından komut isteminde, ondalık kodun kodunu çözmek istediğiniz dönüş değeriyle değiştirildiği aşağıdakini yazın:
net helpmsg <decimal_code>
net komutu hatanın açıklamasını döndürür. Örneğin, COM 8007054B hatasını döndürürse, 054B'yi ondalık (1355) değerine dönüştürün. Ardından aşağıdakileri yazın:
net helpmsg 1355
net komutu şu hata açıklamasını döndürür: "Belirtilen etki alanı yok".