Aracılığıyla paylaş


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".

COM 'da hata işlemeyi