COMException Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Com yöntemi çağrısından tanınmayan bir HRESULT döndürülürken oluşan özel durum.
public ref class COMException : Exception
public ref class COMException : System::Runtime::InteropServices::ExternalException
public class COMException : Exception
public class COMException : System.Runtime.InteropServices.ExternalException
[System.Serializable]
public class COMException : System.Runtime.InteropServices.ExternalException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class COMException : System.Runtime.InteropServices.ExternalException
type COMException = class
inherit Exception
type COMException = class
inherit ExternalException
[<System.Serializable>]
type COMException = class
inherit ExternalException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type COMException = class
inherit ExternalException
Public Class COMException
Inherits Exception
Public Class COMException
Inherits ExternalException
- Devralma
- Devralma
- Türetilmiş
- Öznitelikler
Açıklamalar
COMException sınıfı, COM yöntem çağrısından tanınmayan bir HRESULT döndürülürken oluşan özel durumdur.
Ortak dil çalışma zamanı, iyi bilinen HRESULT'leri .NET özel durumlarına dönüştürerek COM nesnelerinin yönetilen istemcilere anlamlı hata bilgileri döndürmesini sağlar. HRESULT-özel durum eşlemesi, yönetilmeyen istemcilere belirli HRESULT değerlerini döndürerek ters yönde de çalışır. Eşleştirme ayrıntıları için bkz. HRESULTs ve özel durumları eşleme.
Çalışma zamanı, tanınmayan bir HRESULT (belirli, karşılık gelen bir özel durumu olmayan bir HRESULT) ile karşılaştığında, COMException sınıfının bir örneğini fırlatır. Bu çok amaçlı özel durum, herhangi bir özel durumla aynı üyeleri kullanıma sunar ve çağıran tarafından döndürülen HRESULT'u içeren bir ortak ErrorCode özelliği devralır. Çalışma zamanı için bir hata iletisi varsa (Visual Basic'teki nesnesinden, Err arabiriminden veya bazı durumlarda işletim sisteminden elde edildiyse), bu ileti çağırana döndürülür. Ancak, COM bileşeni geliştiricisi bir hata iletisi ekleyemezse, çalışma zamanı ileti dizesi yerine sekiz basamaklı HRESULT döndürür. HRESULT'un bulunması, çağıranın genel bir istisnanın nedenini belirlemesine olanak tanır.
COMException özel durumunu işleme
Aşağıda bir COMException istisnasını gidermek için bazı dikkate alınması gereken noktalar bulunmaktadır.
Bilinmeyen bir HRESULT ile karşılaşıldığında ve bir ErrorCode istisnası atıldığında, çalışma zamanında COMException özelliğini kontrol edin. ErrorCode özelliği, hata mesajını veya hata mesajı mevcut değilse sekiz haneli HRESULT değerini içerir. Hata iletisi veya HRESULT değeri, özel durumun nedenini belirlemenize yardımcı olabilir.
HRESULT değerlerinin listesi için bkz. Ortak HRESULT Değerleri.
Microsoft Office nesnelerinin yöntemlerine geç bağlı bağımsız değişkenler geçirilirken, nesneler COM nesneleri olduğunda bir COMException özel durum oluşturulabilir. Geç bağlayıcı, böylesi yöntem çağrılarının bir ByRef parametresini içerdiğini ve ilettiğiniz özelliğin bir set erişimcisine sahip olduğunu varsayar. Özellik yoksa, .NET bir MissingMethodException özel durum üretir (bir CORE_E_MISSINGMETHOD HRESULT ile). Bu davranışa geçici bir çözüm olarak, önceden bağlanmış nesneler kullanın veya nesnenin özelliği yerine bir değişken geçirin.
COM, Visual Studio ile barındırma işlemi arasında iletişim kurmak için kullanılır. Kod çalıştırılmadan önce kullanıldığından CoInitializeSecurity çağrısı bu özel durumun ortaya çıkmasına neden olur. Bazı durumlarda, Visual Studio'yu Yönetici olarak çalıştırmak sorunu çözebilir. Barındırma işlemini de devre dışı bırakabilirsiniz.
COMException özel durumu fırlatma
Yönetilmeyen istemcilere belirli HRESULT döndürmek için COMException sınıfını kullanabilirsiniz, ancak belirli bir .NET özel durumu atmak, genel bir özel durum kullanmaktan daha iyidir. Yönetilen istemcilerin yanı sıra yönetilmeyen istemcilerin de .NET nesnenizi kullanabileceğini ve yönetilen bir çağırana HRESULT oluşturmanın özel durum oluşturmaktan daha az anlaşılır olduğunu düşünün.
Oluşturucular
| Name | Description |
|---|---|
| COMException() |
Sınıfın COMException yeni bir örneğini varsayılan değerlerle başlatır. |
| COMException(SerializationInfo, StreamingContext) |
Geçersiz.
Serileştirme verilerinden sınıfının yeni bir örneğini COMException başlatır. |
| COMException(String, Exception) |
Belirtilen bir hata iletisi ve bu özel durumun nedeni olan iç özel duruma başvuru ile COMException sınıfının yeni bir örneğini başlatır. |
| COMException(String, Int32) |
Sınıfın COMException yeni bir örneğini belirtilen bir ileti ve hata koduyla başlatır. |
| COMException(String) |
Belirtilen iletiyle sınıfının yeni bir örneğini COMException başlatır. |
Özellikler
| Name | Description |
|---|---|
| Data |
Özel durum hakkında kullanıcı tanımlı ek bilgiler sağlayan anahtar/değer çiftleri koleksiyonunu alır. (Devralındığı yer: Exception) |
| ErrorCode |
Hatanın |
| HelpLink |
Bu özel durumla ilişkili yardım dosyasının bağlantısını alır veya ayarlar. (Devralındığı yer: Exception) |
| HResult |
Belirli bir özel duruma atanan kodlanmış sayısal bir değer olan HRESULT değerini alır veya ayarlar. (Devralındığı yer: Exception) |
| InnerException |
Geçerli özel duruma neden olan Exception örneğini alır. (Devralındığı yer: Exception) |
| Message |
Geçerli özel durumu açıklayan bir ileti alır. (Devralındığı yer: Exception) |
| Source |
Hataya neden olan uygulamanın veya nesnenin adını alır veya ayarlar. (Devralındığı yer: Exception) |
| StackTrace |
Çağrı yığınındaki anlık çerçevelerin dize gösterimini alır. (Devralındığı yer: Exception) |
| TargetSite |
Geçerli özel durumu oluşturan yöntemini alır. (Devralındığı yer: Exception) |
Yöntemler
| Name | Description |
|---|---|
| Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| GetBaseException() |
Türetilmiş bir sınıfta geçersiz kılındığında, sonraki bir veya daha fazla özel durumun kök nedeni olan Exception döndürür. (Devralındığı yer: Exception) |
| GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Geçersiz.
Türetilmiş bir sınıfta geçersiz kılındığında, özel durumla ilgili bilgilerle SerializationInfo ayarlar. (Devralındığı yer: Exception) |
| GetType() |
Geçerli örneğin çalışma zamanı türünü alır. (Devralındığı yer: Exception) |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| ToString() |
Özel durumun içeriğini bir dizeye dönüştürür. |
| ToString() |
Geçerli özel durumun dize gösterimini oluşturur ve döndürür. (Devralındığı yer: Exception) |
Ekinlikler
| Name | Description |
|---|---|
| SerializeObjectState |
Geçersiz.
Özel durum hakkında serileştirilmiş veriler içeren bir özel durum durumu nesnesi oluşturmak için bir özel durum seri hale getirildiğinde gerçekleşir. (Devralındığı yer: Exception) |